<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def decipher(self,string):
 """Decipher string using Bifid cipher according to initialised key. Punctuation and whitespace are removed from the input. Example:: plaintext = Bifid('phqgmeaylnofdxkrcvszwbuti',5).decipher(ciphertext) :param string: The string to decipher. :returns: The deciphered string. """
       
        ret = ''
        string = string.upper()
        rowseq,colseq = [],[]
        # take blocks of length period, reform rowseq,colseq from them
        for i in range(0,len(string),self.period):
            tempseq = []
            for j in range(0,self.period):
                if i+j >= len(string): continue
                tempseq.append(int(self.key.index(string[i + j]) / 5))
                tempseq.append(int(self.key.index(string[i + j]) % 5))
            rowseq.extend(tempseq[0:int(len(tempseq)/2)])
            colseq.extend(tempseq[int(len(tempseq)/2):])
        for i in range(len(rowseq)):
            ret += self.key[rowseq[i]*5 + colseq[i]]
        return ret