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;
}
}