import java.util.*;

public class Main{
public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str = sc.nextLine();
            if(str.contains(".")){
                //包含.说明是ip地址
                System.out.println(strToLong(str));
            }else{
                System.out.println(longToStr(str));
            }
        }
    }

    //ip地址转长整数
    private static Long strToLong(String str){
        String[] arr = str.split("\\.");
        StringBuilder sb = new StringBuilder();
        for(String s:arr){
            sb.append(toBinary(s));
        }
        return bintoLong(sb.toString());
    }

    //长整数转ip地址
    private static String longToStr(String str){
        StringBuilder sb = new StringBuilder();
        String binstr = toBinary(str);
        int len = binstr.length();
        for(int i=0;i<=len-8;i +=8){
            int x = Integer.parseInt(binstr.substring(i,i+8),2);
            sb.append(x).append(".");
        }
        sb.delete(sb.length()-1,sb.length());
        return sb.toString();
    }

    //数字转二进制
    private static String toBinary(String str){
        StringBuilder sb = new StringBuilder();
        long num = Long.parseLong(str);
        while(num>0){
            if(num%2==0){
                sb.insert(0,"0");
            }else{
                sb.insert(0,"1");
            }
            num /= 2;
        }
        if (sb.length()==0){
            return "00000000";
        }
        int m = sb.length()%8;
        if(m!=0){
            while(m<8){
                sb.insert(0,"0");
                m++;
            }
        }

        return sb.toString();
    }

    //二进制转数字
    private static Long bintoLong(String str){
        int len = str.length();
        String[] arr = str.split("");
        long count = 0;
        int p = len;
        for(int i=0;i<len;i++){
            count += Integer.parseInt(arr[i]) * Math.pow(2,p-1);
            p--;
        }
        return count;
    }
}