import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String in = sc.next();
// System.out.println(in); StringBuffer sbin = new StringBuffer(in);//输入 char[] arr = in.toCharArray(); String HexMoving = "";//16进制偏移 StringBuffer sb = new StringBuffer("");//拼接每一行字符串
for(int i=0; i<arr.length/16; i++){
HexMoving = Integer.toHexString(i*16);
//如果少于8位 前面补零
if(HexMoving.length() < 8) {
for (int j = 0; j < 8 - HexMoving.length(); j++) {
sb.append("0");
}
}
sb.append(HexMoving);
sb.append(" ");
//每16字节 转16进制 用空格做间隔
for (int j = i*16; j<(i+1)*16; j++){
sb.append(Integer.toHexString(sbin.charAt(j)));
sb.append(" ");
}
sb.append(" ");
//加入原字符串
sb.append(sbin.substring(i*16, (i+1)*16));
System.out.println(sb.toString());//输出并换行
HexMoving ="";//重置位移变量
sb.delete(0,sb.length());//清空
}
}
//abcdefghabcdefghabcdefghabcdefgh
}