import java.util.Scanner;

public class Test1 {
	
	public static void main(String[] args){
		Scanner sc =new Scanner(System.in);
		String input = sc.next();
		
		char[] arr = input.toCharArray();
	    int len =arr.length;
		int n = (len % 16 == 0)?(len/16):(len/16+1);
		char[][] smallChar = new char[n][16];
		//构建二维数组
		for(int i=0;i<len;i++){
			smallChar[i/16][i%16] =arr[i];
		}
		
		for(int i=0;i<smallChar.length;i++){
			StringBuffer sb =new StringBuffer();
			//16进制偏置
			sb.append(String.format("%08x", i*16));
			sb.append("  ");
			//16进制打印
			for(int j=0;j<smallChar[i].length;j++){
				sb.append(Integer.toHexString((int)smallChar[i][j])+"  ");
			}
			//字符打印
			for(int j=0;j<smallChar[i].length;j++){
				sb.append(smallChar[i][j]);
			}
			System.out.println(sb.toString());
		}
		sc.close();
	}
}