import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    //整数与Ip地址之间的转换
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String strIP =sc.nextLine();
        String strTenIP = sc.nextLine();
        System.out.println(TranslationTenIP(strIP));
        System.out.println(TranslationBinaryIP(strTenIP));
    }

    private static String TranslationBinaryIP(String strTenIP) {
        //注意Int的范围int的取值范围: -2^31~2^31,不够2的32次方,所以要改成long.
        String s = Long.toBinaryString(Long.parseLong(strTenIP));//十进制,转换成二进制
        StringBuilder TenIP = new StringBuilder();
        //不够32位要在前面补上0
        for (int i = 0; i < 32-s.length(); i++) {
            TenIP.insert(0,"0");
        }
        TenIP.append(s);//拼接
        int[] IntIP = new int[4];
        StringBuilder IP = new StringBuilder();
        for (int i = 0; i < 4; i++) {
            IntIP[i]=Integer.parseInt(TenIP.substring(i*8,i*8+8),2);//二进制数每八位分割开,然后转换成10进制。
            IP.append(IntIP[i]);
            if(i<3) {
                IP.append(".");
            }
        }
        return IP.toString();
    }

    public static Long TranslationTenIP(String strIP){
        StringBuilder TenIP = new StringBuilder();
        String[] chIP = strIP.split("\\.");//不能直接以.去分割,不能识别。
        for (int i = 0; i < chIP.length; i++) {
            String s = Integer.toBinaryString(Integer.parseInt(chIP[i]));//十进制转换成二进制,不够8位,要补齐0.
            for (int j = 0; j < 8-s.length(); j++) {
                TenIP.append("0");
            }
            TenIP.append(s);//拼接在一起
        }
        //注意Int的范围int的取值范围: -2^31~2^31,不够2的32次方,所以要改成long.
        Long n = Long.parseLong(TenIP.toString(),2);//把二进制转换成十进制
        return n;
    }
}