import java.util.Scanner;
public class Main {
public static void main
(String[] args
) { Scanner scanner
= new Scanner
(System.
in); int k = scanner.nextInt(); // Input integer k
// Calculate the size of the checkerboard
int size = 1 << k;
// Generate the checkerboard pattern
char[][] checkerboard = generateCheckerboard(size);
// Print the checkerboard pattern
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
System.
out.
print(checkerboard
[i
][j
]); }
}
scanner.close();
}
// Function to generate the checkerboard pattern
private static char[][] generateCheckerboard(int size) {
char[][] checkerboard = new char[size][size];
if (size == 1) {
checkerboard[0][0] = '#';
return checkerboard;
}
char[][] smallerCheckerboard = generateCheckerboard(size / 2);
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
char c = smallerCheckerboard[i % (size / 2)][j % (size / 2)];
checkerboard[i][j] = c;
}
}
return checkerboard;
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2Nhbm5lciA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IGsgPSBzY2FubmVyLm5leHRJbnQoKTsgLy8gSW5wdXQgaW50ZWdlciBrCgogICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUgY2hlY2tlcmJvYXJkCiAgICAgICAgaW50IHNpemUgPSAxIDw8IGs7CgogICAgICAgIC8vIEdlbmVyYXRlIHRoZSBjaGVja2VyYm9hcmQgcGF0dGVybgogICAgICAgIGNoYXJbXVtdIGNoZWNrZXJib2FyZCA9IGdlbmVyYXRlQ2hlY2tlcmJvYXJkKHNpemUpOwoKICAgICAgICAvLyBQcmludCB0aGUgY2hlY2tlcmJvYXJkIHBhdHRlcm4KICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHNpemU7IGorKykgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChjaGVja2VyYm9hcmRbaV1bal0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOwogICAgICAgIH0KCiAgICAgICAgc2Nhbm5lci5jbG9zZSgpOwogICAgfQoKICAgIC8vIEZ1bmN0aW9uIHRvIGdlbmVyYXRlIHRoZSBjaGVja2VyYm9hcmQgcGF0dGVybgogICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gZ2VuZXJhdGVDaGVja2VyYm9hcmQoaW50IHNpemUpIHsKICAgICAgICBjaGFyW11bXSBjaGVja2VyYm9hcmQgPSBuZXcgY2hhcltzaXplXVtzaXplXTsKCiAgICAgICAgaWYgKHNpemUgPT0gMSkgewogICAgICAgICAgICBjaGVja2VyYm9hcmRbMF1bMF0gPSAnIyc7CiAgICAgICAgICAgIHJldHVybiBjaGVja2VyYm9hcmQ7CiAgICAgICAgfQoKICAgICAgICBjaGFyW11bXSBzbWFsbGVyQ2hlY2tlcmJvYXJkID0gZ2VuZXJhdGVDaGVja2VyYm9hcmQoc2l6ZSAvIDIpOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHNpemU7IGorKykgewogICAgICAgICAgICAgICAgY2hhciBjID0gc21hbGxlckNoZWNrZXJib2FyZFtpICUgKHNpemUgLyAyKV1baiAlIChzaXplIC8gMildOwogICAgICAgICAgICAgICAgY2hlY2tlcmJvYXJkW2ldW2pdID0gYzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGNoZWNrZXJib2FyZDsKICAgIH0KfQo=