__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=