import java.io.*;
import java.util.*;

public class IP {
 public static void main(String[] args) {
   try {
     BufferedReader br =
       new BufferedReader(new InputStreamReader(System.in));
     String str = null;
     int[] ia = new int[4];
     System.out.print("学生証番号(末尾3数字) IPアドレス(例133.11.225.41) -> ");
     while ((str = br.readLine()) != null) {
       StringTokenizer st = new StringTokenizer(str);
       String num = st.nextToken(); // .substring(3);
       System.out.println("5" + num + "番目  -> " +
toRoom(Integer.parseInt("5" + num)));
       num = num.replace('4', '8').replace('9', '6');
       System.out.println("10" + num + "号室 -> " + toNumber(num));
       ia[0] = Integer.parseInt(st.nextToken(".").trim());
       ia[1] = Integer.parseInt(st.nextToken(".").trim());
       ia[2] = Integer.parseInt(st.nextToken(".").trim());
       ia[3] = Integer.parseInt(st.nextToken(".").trim());
       System.out.print("端末IP: ");
       System.out.println(ia[0] + "." + ia[1] + "." + ia[2] + "." +
ia[3]);
       for (int i = 0; i < 4; i++) {
         System.out.print(Integer.toHexString(ia[i]) + " ");
       }
       System.out.println();
       for (int i = 0; i < 4; i++) {
         System.out.print(Integer.toBinaryString(ia[i]) + " ");
       }
       System.out.println();
       ia[3] += 1;
       System.out.print("(1+) IP: ");
       System.out.println(ia[0] + "." + ia[1] + "." + ia[2] + "." +
ia[3]);
       for (int i = 0; i < 4; i++) {
         System.out.print(Integer.toHexString(ia[i]) + " ");
       }
       System.out.println();
       for (int i = 0; i < 4; i++) {
         System.out.print(Integer.toBinaryString(ia[i]) + " ");
       }
       System.out.println();
       ia[0] = 255 - ia[0];
       ia[1] = 255 - ia[1];
       ia[2] = 255 - ia[2];
       ia[3] = 256 - ia[3];
       System.out.print("(255-) IP: ");
       System.out.println(ia[0] + "." + ia[1] + "." + ia[2] + "." +
ia[3]);
       for (int i = 0; i < 4; i++) {
         System.out.print(Integer.toHexString(ia[i]) + " ");
       }
       System.out.println();
       for (int i = 0; i < 4; i++) {
         System.out.print(Integer.toBinaryString(ia[i]) + " ");
       }
       System.out.println();
       System.out.print("学生証番号 IPアドレス -> ");
     }
   }
   catch (Exception e) {
     System.out.println("Error: " + e);
     e.printStackTrace();
   }
 }

 public static String toRoom(int num) {
   final String[] c = {"0", "1", "2", "3", "5", "6", "7", "8"};
   if (num > 0) {
     return toRoom(num / 8) + c[num%8];
   }
   else {
     return "";
   }
 }

 public static int toNumber(String num) {
   final int[] i = {0, 1, 2, 3, 0, 4, 5, 6, 7, 0};
   int sum = ((8 * 8 + i[(int)(num.charAt(0) - '0')]) * 8 +
              i[(int)(num.charAt(1) - '0')]) * 8 +
              i[(int)(num.charAt(2) - '0')];
   return sum;
 }
}

