// 使用padStart(maxlength, fillString)可以用指定字符串填充原字符串到指定长度
let ip = readline().split('.').map(i => Number(i))
let n = Number(readline())
print(changeIP(ip))
print(changeToIP(n))
function changeIP(ip) { // IP转整数
let arr = []
ip.forEach(i => {
arr.push(i.toString(2).padStart(8, 0))
})
return parseInt(arr.join(''), 2)
}
function changeToIP(n) { // 整数转IP
let s = n.toString(2).padStart(32, 0)
let arr = []
for(let i=0; i<s.length; i++) {
if(i%8==0)arr.push(s.substr(i, 8))
}
return arr.map(i => parseInt(i, 2)).join('.')
}