import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int sum = 0; // 统计每次要输出的值 int index = 0; // 标志当前所在的位置 int m = (int) Math.pow(2, n); for (int i = 0; i < m; i ++) { String s = sc.next(); for (int j = 0; j < s.length(); j ++) { // 3 - index是因为当前是从前往后(从高位到低位)遍历的二进制,而且每四个二进制位就统计一次总和 if (s.charAt(j) == '#') sum += Math.pow(2, 3 - index); // 否则表示该位置是 '.',而不是 ‘#’ // 无论是 . 还是 # ,index都会往后走一个位置 index ++; // 当index为4时,表示已经走过了4个二进制位,此时输出其所对应的十进制数,同时清空sum和index if (index == 4) { System.out.print(sum + " "); sum = 0; index = 0; } } } sc.close(); } }