import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String normalIp = sc.nextLine();
long decimalIp = Long.parseLong(sc.nextLine());
// 正常IP地址转换成10进制的IP地址
String[] normalIps = normalIp.split("\\.");
StringBuilder sb1 = new StringBuilder();
for (int i = 0; i < normalIps.length; i++) {
sb1.append(to8Binary(Integer.parseInt(normalIps[i])));
}
double result1 = 0;
int index = 0;
for (int i = sb1.length() - 1; i >= 0; i--) {
result1 = result1 + Math.pow(2, index++) * (sb1.charAt(i) - '0');
}
System.out.println((long) result1);
// 10进制的IP地址转换成正常IP地址
String str32 = to32Binary(decimalIp);
StringBuilder sb2 = new StringBuilder();
for (int i = 0; i < str32.length(); i += 8) {
sb2.append(Integer.parseInt(str32.substring(i, i + 8), 2)).append(".");
}
sb2.deleteCharAt(sb2.length() - 1);
System.out.println(sb2.toString());
}
/**
* int转为8位二进制
*/
public static String to8Binary(int i) {
String s = Integer.toBinaryString(i);
if (s.length() < 8) {
s = String.format("%8s", s).replace(' ','0');
}
return s;
}
/**
* long转为32位二进制
*/
public static String to32Binary(long l) {
String s = Long.toBinaryString(l);
if (s.length() < 32) {
s = String.format("%32s", s).replace(' ','0');
}
return s;
}
}