__author__ = 'thunder' from sys import stdin data = ( ( '0' , 'no' ) , ( '1' , 'pa' ) , ( '2' , 're' ) , ( '3' , 'ci' ) , ( '4' , 'vo' ) , ( '5' , 'mu' ) , ( '6' , 'xa' ) , ( '7' , 'ze' ) , ( '8' , 'bi' ) , ( '9' , 'so' ) , ) def blocky_changer ( source , dict_of_replaces , block_size = 2 ) : def split_len ( seq , length ) : return [ seq [ i:i+length ] for i in range ( 0 , len ( seq ) , length ) ] blocks = split_len ( source , block_size ) if block_size > 1 else source return map ( lambda x: dict_of_replaces [ x ] , blocks ) def str_blocky_changer ( source_string , dict_of_replaces , block_size = 1 ) : return "" . join ( blocky_changer ( source_string , dict_of_replaces , block_size ) ) int_li_dict = dict ( data ) li_int_dict = { v: k for k , v in int_li_dict. iteritems ( ) } def namcu_to_int ( text ) : return int ( str_blocky_changer ( text , li_int_dict , 2 ) ) def int_to_namcu ( number ) : return str_blocky_changer ( str ( number ) , int_li_dict ) if __name__ == "__main__" : number_or_namcu = stdin. read ( ) number = None namcu = None try : number = int ( number_or_namcu ) except ValueError : namcu = number_or_namcu if number: print int_to_namcu ( number ) else : print namcu_to_int ( namcu )

X19hdXRob3JfXyA9ICd0aHVuZGVyJwoKZnJvbSBzeXMgaW1wb3J0IHN0ZGluCgpkYXRhID0gICgKICAgICAgICAgICAgKCcwJywgJ25vJyksCiAgICAgICAgICAgICgnMScsICdwYScpLAogICAgICAgICAgICAoJzInLCAncmUnKSwKICAgICAgICAgICAgKCczJywgJ2NpJyksCiAgICAgICAgICAgICgnNCcsICd2bycpLAogICAgICAgICAgICAoJzUnLCAnbXUnKSwKICAgICAgICAgICAgKCc2JywgJ3hhJyksCiAgICAgICAgICAgICgnNycsICd6ZScpLAogICAgICAgICAgICAoJzgnLCAnYmknKSwKICAgICAgICAgICAgKCc5JywgJ3NvJyksCiAgICAgICAgKQoKZGVmIGJsb2NreV9jaGFuZ2VyKHNvdXJjZSwgZGljdF9vZl9yZXBsYWNlcywgYmxvY2tfc2l6ZT0yKToKCiAgICBkZWYgc3BsaXRfbGVuKHNlcSwgbGVuZ3RoKToKICAgICAgICByZXR1cm4gW3NlcVtpOmkrbGVuZ3RoXSBmb3IgaSBpbiByYW5nZSgwLCBsZW4oc2VxKSwgbGVuZ3RoKV0KCiAgICBibG9ja3MgPSBzcGxpdF9sZW4oc291cmNlLCBibG9ja19zaXplKSBpZiBibG9ja19zaXplID4gMSBlbHNlIHNvdXJjZQogICAgcmV0dXJuIG1hcChsYW1iZGEgeDogZGljdF9vZl9yZXBsYWNlc1t4XSwgYmxvY2tzKQoKCmRlZiBzdHJfYmxvY2t5X2NoYW5nZXIoc291cmNlX3N0cmluZywgZGljdF9vZl9yZXBsYWNlcywgYmxvY2tfc2l6ZT0xKToKICAgIHJldHVybiAiIi5qb2luKGJsb2NreV9jaGFuZ2VyKHNvdXJjZV9zdHJpbmcsIGRpY3Rfb2ZfcmVwbGFjZXMsIGJsb2NrX3NpemUpKQoKaW50X2xpX2RpY3QgPSBkaWN0KGRhdGEpCmxpX2ludF9kaWN0ID0ge3Y6IGsgZm9yIGssIHYgaW4gaW50X2xpX2RpY3QuaXRlcml0ZW1zKCl9CgoKZGVmIG5hbWN1X3RvX2ludCh0ZXh0KToKICAgIHJldHVybiBpbnQoc3RyX2Jsb2NreV9jaGFuZ2VyKHRleHQsIGxpX2ludF9kaWN0LCAyKSkKCmRlZiBpbnRfdG9fbmFtY3UobnVtYmVyKToKICAgIHJldHVybiBzdHJfYmxvY2t5X2NoYW5nZXIoc3RyKG51bWJlciksIGludF9saV9kaWN0KQogICAgCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CgludW1iZXJfb3JfbmFtY3UgPSBzdGRpbi5yZWFkKCkKCQoJbnVtYmVyID0gTm9uZQoJbmFtY3UgPSBOb25lCgkKCXRyeToKCQludW1iZXIgPSBpbnQobnVtYmVyX29yX25hbWN1KQoJZXhjZXB0IFZhbHVlRXJyb3I6CgkJbmFtY3UgPSBudW1iZXJfb3JfbmFtY3UKCQoJaWYgbnVtYmVyOgoJCXByaW50IGludF90b19uYW1jdShudW1iZXIpCgllbHNlOgoJCXByaW50IG5hbWN1X3RvX2ludChuYW1jdSk=