


# 原理：ip地址的每段可以看成是一个0-255的整数，把每段拆分成一个二进制形式组合起来，然后把这个二进制数转变成
# 一个长整数。
# 举例：一个ip地址为10.0.3.193
# 每段数字             相对应的二进制数
# 10                   00001010
# 0                    00000000
# 3                    00000011
# 193                  11000001
# 组合起来即为：00001010 00000000 00000011 11000001,转换为10进制数就是：167773121，即该IP地址转换后的数字就是它了。
# 的每段可以看成是一个0-255的整数，需要对IP地址进行校验

# 输入描述:
# 输入 
# 1 输入IP地址
# 2 输入10进制型的IP地址

# 输出描述:
# 输出
# 1 输出转换成10进制的IP地址
# 2 输出转换后的IP地址

# 示例1
# 

# 10.0.3.193
# 167969729


# 输出：

# 167773121
# 10.3.3.193



def binint(a):
    c=''
    for i in a:
        c+=bin(int(i)).replace('0b','').rjust(8,'0')
    return(int(c,2))
 
def intbin(b):
    b=bin(b).replace('0b','').rjust(32,'0')
    c=''
    for i in range(4):
        c+=str(int(b[i*8:(i+1)*8],2))+'.'

    # 把最后的一个 字符 '.' 给去除掉，得到最终的结果值。
    c=c[:-1]
    return c


while True:
    try:
        a=input().split('.')
        b=int(input())
        print(binint(a))
        print(intbin(b))
    except:
        break











a26be642ad4b2f65757f15a753475ad5ec46c7ce
<mask token>

<mask token>


def intbin(b):
    b = bin(b).replace('0b', '').rjust(32, '0')
    c = ''
    for i in range(4):
        c += str(int(b[i * 8:(i + 1) * 8], 2)) + '.'
    c = c[:-1]
    return c


<mask token>

def binint(a):
    c = ''
    for i in a:
        c += bin(int(i)).replace('0b', '').rjust(8, '0')
    return int(c, 2)


def intbin(b):
    b = bin(b).replace('0b', '').rjust(32, '0')
    c = ''
    for i in range(4):
        c += str(int(b[i * 8:(i + 1) * 8], 2)) + '.'
    c = c[:-1]
    return c


<mask token>

def binint(a):
    c = ''
    for i in a:
        c += bin(int(i)).replace('0b', '').rjust(8, '0')
    return int(c, 2)


def intbin(b):
    b = bin(b).replace('0b', '').rjust(32, '0')
    c = ''
    for i in range(4):
        c += str(int(b[i * 8:(i + 1) * 8], 2)) + '.'
    c = c[:-1]
    return c


while True:
    try:
        a = input().split('.')
        b = int(input())
        print(binint(a))
        print(intbin(b))
    except:
        break




# 原理：ip地址的每段可以看成是一个0-255的整数，把每段拆分成一个二进制形式组合起来，然后把这个二进制数转变成
# 一个长整数。
# 举例：一个ip地址为10.0.3.193
# 每段数字             相对应的二进制数
# 10                   00001010
# 0                    00000000
# 3                    00000011
# 193                  11000001
# 组合起来即为：00001010 00000000 00000011 11000001,转换为10进制数就是：167773121，即该IP地址转换后的数字就是它了。
# 的每段可以看成是一个0-255的整数，需要对IP地址进行校验

# 输入描述:
# 输入 
# 1 输入IP地址
# 2 输入10进制型的IP地址

# 输出描述:
# 输出
# 1 输出转换成10进制的IP地址
# 2 输出转换后的IP地址

# 示例1
# 

# 10.0.3.193
# 167969729


# 输出：

# 167773121
# 10.3.3.193



def binint(a):
    c=''
    for i in a:
        c+=bin(int(i)).replace('0b','').rjust(8,'0')
    return(int(c,2))
 
def intbin(b):
    b=bin(b).replace('0b','').rjust(32,'0')
    c=''
    for i in range(4):
        c+=str(int(b[i*8:(i+1)*8],2))+'.'

    # 把最后的一个 字符 '.' 给去除掉，得到最终的结果值。
    c=c[:-1]
    return c


while True:
    try:
        a=input().split('.')
        b=int(input())
        print(binint(a))
        print(intbin(b))
    except:
        break










