while True:
    try:
        a = input()
        a = a.split('.')
        if(len(a) == 1):若输入的是需要还原的
            b = '{:32b}'.format(int(a[0])) #转化为32位二进制
            b = list(b)
            for i in range(len(b)): #不知道为啥他前面不会补齐。。手动补齐32位,转化为8位4位就没这种情况
            有大佬知道为啥不
                if(b[i] == ' '):
                    b[i] = '0'
            b = ''.join(b)
            b_1 = '0b' + b[:8] #截取四部分
            b_2 = '0b' + b[8:16]
            b_3 = '0b' + b[16:24]
            b_4 = '0b' + b[24:]
            c = []
            c.append(str(int(b_1,2))) #分别转为十进制
            c.append(str(int(b_2,2)))
            c.append(str(int(b_3,2)))
            c.append(str(int(b_4,2)))
            print('.'.join(c)) #十进制之间用.相连
        else: #若为IP地址
            e = []
            for i in a:
                d = int(i)
                d = '{:08b}'.format(d) #转化为8位二进制
                e.append(d)
            d = ''.join(e)
            print(int(d,2))最后转化为十进制
    except:
        break