import java.util.Scanner;

class Main {
	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);
		StringBuilder str = new StringBuilder();

		while (true) {
			int h = scan.nextInt();
			int w = scan.nextInt();

			if (h == 0 && w == 0)
				break;
          
			// 偶行偶列
			if (h % 2 == 0 && w % 2 == 0) {
				for (int j = 0; j < h / 2; j++) { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				}
			}

			// 偶行奇列
			if (h % 2 == 0 && w % 2 != 0) {
				for (int i = 0; i < h / 2; i++) { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				}
			}

			// 奇行偶列
			if (h % 2 != 0 && w % 2 == 0) {
				for (int i = 0; i < w/2; i++) {
					str.append("#."); // 一行目
				}
				str.append("\n");

				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				}
			}

			// 奇行奇列
			if (h % 2 != 0 && w % 2 != 0) {
				str.append("#"); // 最初の行の最初の文字
				for (int i = 0; i < (w - 1) / 2; i++) {
					str.append(".#"); // 二文字目からの繰り返し
				}
				str.append("\n");
				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				}
			}
			str.append("\n");
		}
		System.out.print(str);
	}

} import java.util.Scanner; Scanner java.util class Main {
	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);
		StringBuilder str = new StringBuilder();

		while (true) {
			int h = scan.nextInt();
			int w = scan.nextInt();

			if (h == 0 && w == 0)
				break;
          
			// 偶行偶列
			if (h % 2 == 0 && w % 2 == 0) {
				for (int j = 0; j < h / 2; j++) { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				}
			}

			// 偶行奇列
			if (h % 2 == 0 && w % 2 != 0) {
				for (int i = 0; i < h / 2; i++) { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				}
			}

			// 奇行偶列
			if (h % 2 != 0 && w % 2 == 0) {
				for (int i = 0; i < w/2; i++) {
					str.append("#."); // 一行目
				}
				str.append("\n");

				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				}
			}

			// 奇行奇列
			if (h % 2 != 0 && w % 2 != 0) {
				str.append("#"); // 最初の行の最初の文字
				for (int i = 0; i < (w - 1) / 2; i++) {
					str.append(".#"); // 二文字目からの繰り返し
				}
				str.append("\n");
				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				}
			}
			str.append("\n");
		}
		System.out.print(str);
	}

} Main public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);
		StringBuilder str = new StringBuilder();

		while (true) {
			int h = scan.nextInt();
			int w = scan.nextInt();

			if (h == 0 && w == 0)
				break;
          
			// 偶行偶列
			if (h % 2 == 0 && w % 2 == 0) {
				for (int j = 0; j < h / 2; j++) { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				}
			}

			// 偶行奇列
			if (h % 2 == 0 && w % 2 != 0) {
				for (int i = 0; i < h / 2; i++) { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				}
			}

			// 奇行偶列
			if (h % 2 != 0 && w % 2 == 0) {
				for (int i = 0; i < w/2; i++) {
					str.append("#."); // 一行目
				}
				str.append("\n");

				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				}
			}

			// 奇行奇列
			if (h % 2 != 0 && w % 2 != 0) {
				str.append("#"); // 最初の行の最初の文字
				for (int i = 0; i < (w - 1) / 2; i++) {
					str.append(".#"); // 二文字目からの繰り返し
				}
				str.append("\n");
				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				}
			}
			str.append("\n");
		}
		System.out.print(str);
	} main {

		Scanner scan = new Scanner(System.in);
		StringBuilder str = new StringBuilder();

		while (true) {
			int h = scan.nextInt();
			int w = scan.nextInt();

			if (h == 0 && w == 0)
				break;
          
			// 偶行偶列
			if (h % 2 == 0 && w % 2 == 0) {
				for (int j = 0; j < h / 2; j++) { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				}
			}

			// 偶行奇列
			if (h % 2 == 0 && w % 2 != 0) {
				for (int i = 0; i < h / 2; i++) { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				}
			}

			// 奇行偶列
			if (h % 2 != 0 && w % 2 == 0) {
				for (int i = 0; i < w/2; i++) {
					str.append("#."); // 一行目
				}
				str.append("\n");

				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				}
			}

			// 奇行奇列
			if (h % 2 != 0 && w % 2 != 0) {
				str.append("#"); // 最初の行の最初の文字
				for (int i = 0; i < (w - 1) / 2; i++) {
					str.append(".#"); // 二文字目からの繰り返し
				}
				str.append("\n");
				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				}
			}
			str.append("\n");
		}
		System.out.print(str);
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) StringBuilder str = new StringBuilder(); str new StringBuilder() while (true) {
			int h = scan.nextInt();
			int w = scan.nextInt();

			if (h == 0 && w == 0)
				break;
          
			// 偶行偶列
			if (h % 2 == 0 && w % 2 == 0) {
				for (int j = 0; j < h / 2; j++) { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				}
			}

			// 偶行奇列
			if (h % 2 == 0 && w % 2 != 0) {
				for (int i = 0; i < h / 2; i++) { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				}
			}

			// 奇行偶列
			if (h % 2 != 0 && w % 2 == 0) {
				for (int i = 0; i < w/2; i++) {
					str.append("#."); // 一行目
				}
				str.append("\n");

				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				}
			}

			// 奇行奇列
			if (h % 2 != 0 && w % 2 != 0) {
				str.append("#"); // 最初の行の最初の文字
				for (int i = 0; i < (w - 1) / 2; i++) {
					str.append(".#"); // 二文字目からの繰り返し
				}
				str.append("\n");
				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				}
			}
			str.append("\n");
		} true {
			int h = scan.nextInt();
			int w = scan.nextInt();

			if (h == 0 && w == 0)
				break;
          
			// 偶行偶列
			if (h % 2 == 0 && w % 2 == 0) {
				for (int j = 0; j < h / 2; j++) { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				}
			}

			// 偶行奇列
			if (h % 2 == 0 && w % 2 != 0) {
				for (int i = 0; i < h / 2; i++) { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				}
			}

			// 奇行偶列
			if (h % 2 != 0 && w % 2 == 0) {
				for (int i = 0; i < w/2; i++) {
					str.append("#."); // 一行目
				}
				str.append("\n");

				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				}
			}

			// 奇行奇列
			if (h % 2 != 0 && w % 2 != 0) {
				str.append("#"); // 最初の行の最初の文字
				for (int i = 0; i < (w - 1) / 2; i++) {
					str.append(".#"); // 二文字目からの繰り返し
				}
				str.append("\n");
				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				}
			}
			str.append("\n");
		} int h = scan.nextInt(); h scan.nextInt() scan.nextInt scan int w = scan.nextInt(); w scan.nextInt() scan.nextInt scan if (h == 0 && w == 0)
				break; h == 0 && w == 0 h == 0 h 0 w == 0 w 0 break; if (h % 2 == 0 && w % 2 == 0) {
				for (int j = 0; j < h / 2; j++) { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				}
			} h % 2 == 0 && w % 2 == 0 h % 2 == 0 h % 2 h 2 0 w % 2 == 0 w % 2 w 2 0 {
				for (int j = 0; j < h / 2; j++) { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				}
			} for (int j = 0; j < h / 2; j++) { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				} int j = 0; int j = 0; j 0 j < h / 2 j h / 2 h 2 j++ j++ j { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				} { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				} for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					} int i = 0; int i = 0; i 0 i < w / 2 i w / 2 w 2 i++ i++ i {
						str.append("#.");
					} {
						str.append("#.");
					} str.append("#.") str.append str "#." str.append("\n") str.append str "\n" for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					} int i = 0; int i = 0; i 0 i < w / 2 i w / 2 w 2 i++ i++ i {
						str.append(".#");
					} {
						str.append(".#");
					} str.append(".#") str.append str ".#" str.append("\n") str.append str "\n" if (h % 2 == 0 && w % 2 != 0) {
				for (int i = 0; i < h / 2; i++) { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				}
			} h % 2 == 0 && w % 2 != 0 h % 2 == 0 h % 2 h 2 0 w % 2 != 0 w % 2 w 2 0 {
				for (int i = 0; i < h / 2; i++) { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				}
			} for (int i = 0; i < h / 2; i++) { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				} int i = 0; int i = 0; i 0 i < h / 2 i h / 2 h 2 i++ i++ i { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				} { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				} str.append("#") str.append str "#" for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					} int j = 0; int j = 0; j 0 j < (w - 1) / 2 j (w - 1) / 2 (w - 1) w 1 2 j++ j++ j { // 一行目の二文字目以降
						str.append(".#");
					} { // 一行目の二文字目以降
						str.append(".#");
					} str.append(".#") str.append str ".#" str.append("\n") str.append str "\n" str.append(".") str.append str "." for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					} int j = 0; int j = 0; j 0 j < (w - 1) / 2 j (w - 1) / 2 (w - 1) w 1 2 j++ j++ j {
						str.append("#."); // 二行目の二文字目以降
					} {
						str.append("#."); // 二行目の二文字目以降
					} str.append("#.") str.append str "#." str.append("\n") str.append str "\n" if (h % 2 != 0 && w % 2 == 0) {
				for (int i = 0; i < w/2; i++) {
					str.append("#."); // 一行目
				}
				str.append("\n");

				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				}
			} h % 2 != 0 && w % 2 == 0 h % 2 != 0 h % 2 h 2 0 w % 2 == 0 w % 2 w 2 0 {
				for (int i = 0; i < w/2; i++) {
					str.append("#."); // 一行目
				}
				str.append("\n");

				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				}
			} for (int i = 0; i < w/2; i++) {
					str.append("#."); // 一行目
				} int i = 0; int i = 0; i 0 i < w/2 i w/2 w 2 i++ i++ i {
					str.append("#."); // 一行目
				} {
					str.append("#."); // 一行目
				} str.append("#.") str.append str "#." str.append("\n") str.append str "\n" for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				} int j = 0; int j = 0; j 0 j < (h - 1) / 2 j (h - 1) / 2 (h - 1) h 1 2 j++ j++ j { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				} { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				} for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					} int i = 0; int i = 0; i 0 i < w/2 i w/2 w 2 i++ i++ i {
						str.append(".#"); // 二行目
					} {
						str.append(".#"); // 二行目
					} str.append(".#") str.append str ".#" str.append("\n") str.append str "\n" for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					} int i = 0; int i = 0; i 0 i < w/2 i w/2 w 2 i++ i++ i {
						str.append("#."); // 三行目
					} {
						str.append("#."); // 三行目
					} str.append("#.") str.append str "#." str.append("\n") str.append str "\n" if (h % 2 != 0 && w % 2 != 0) {
				str.append("#"); // 最初の行の最初の文字
				for (int i = 0; i < (w - 1) / 2; i++) {
					str.append(".#"); // 二文字目からの繰り返し
				}
				str.append("\n");
				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				}
			} h % 2 != 0 && w % 2 != 0 h % 2 != 0 h % 2 h 2 0 w % 2 != 0 w % 2 w 2 0 {
				str.append("#"); // 最初の行の最初の文字
				for (int i = 0; i < (w - 1) / 2; i++) {
					str.append(".#"); // 二文字目からの繰り返し
				}
				str.append("\n");
				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				}
			} str.append("#") str.append str "#" for (int i = 0; i < (w - 1) / 2; i++) {
					str.append(".#"); // 二文字目からの繰り返し
				} int i = 0; int i = 0; i 0 i < (w - 1) / 2 i (w - 1) / 2 (w - 1) w 1 2 i++ i++ i {
					str.append(".#"); // 二文字目からの繰り返し
				} {
					str.append(".#"); // 二文字目からの繰り返し
				} str.append(".#") str.append str ".#" str.append("\n") str.append str "\n" for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				} int j = 0; int j = 0; j 0 j < (h - 1) / 2 j (h - 1) / 2 (h - 1) h 1 2 j++ j++ j { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				} { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				} str.append(".") str.append str "." for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					} int i = 0; int i = 0; i 0 i < (w - 1) / 2 i (w - 1) / 2 (w - 1) w 1 2 i++ i++ i {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					} {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					} str.append("#.") str.append str "#." str.append("\n") str.append str "\n" str.append("#") str.append str "#" for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					} int i = 0; int i = 0; i 0 i < (w - 1) / 2 i (w - 1) / 2 (w - 1) w 1 2 i++ i++ i {
						str.append(".#"); // 二文字目からの繰り返し
					} {
						str.append(".#"); // 二文字目からの繰り返し
					} str.append(".#") str.append str ".#" str.append("\n") str.append str "\n" str.append("\n") str.append str "\n" System.out.print(str) System.out.print System.out System System.out str String[] args args
import java.util.Scanner;

class Main {
	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);
		StringBuilder str = new StringBuilder();

		while (true) {
			int h = scan.nextInt();
			int w = scan.nextInt();

			if (h == 0 && w == 0)
				break;
          
			// 偶行偶列
			if (h % 2 == 0 && w % 2 == 0) {
				for (int j = 0; j < h / 2; j++) { // 一行目と二行目の繰り返し
					for (int i = 0; i < w / 2; i++) {
						str.append("#.");
					}
					str.append("\n"); // 一行目を並べる

					for (int i = 0; i < w / 2; i++) {
						str.append(".#");
					}
					str.append("\n"); // 二行目を並べる
				}
			}

			// 偶行奇列
			if (h % 2 == 0 && w % 2 != 0) {
				for (int i = 0; i < h / 2; i++) { // 一行目と二行目の繰り返し

					str.append("#"); // 一行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) { // 一行目の二文字目以降
						str.append(".#");
					}
					str.append("\n");

					str.append("."); // 二行目の一文字目
					for (int j = 0; j < (w - 1) / 2; j++) {
						str.append("#."); // 二行目の二文字目以降
					}
					str.append("\n");
				}
			}

			// 奇行偶列
			if (h % 2 != 0 && w % 2 == 0) {
				for (int i = 0; i < w/2; i++) {
					str.append("#."); // 一行目
				}
				str.append("\n");

				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					for (int i = 0; i < w/2; i++) {
						str.append(".#"); // 二行目
					}
					str.append("\n");

					for (int i = 0; i < w/2; i++) {
						str.append("#."); // 三行目
					}
					str.append("\n");

				}
			}

			// 奇行奇列
			if (h % 2 != 0 && w % 2 != 0) {
				str.append("#"); // 最初の行の最初の文字
				for (int i = 0; i < (w - 1) / 2; i++) {
					str.append(".#"); // 二文字目からの繰り返し
				}
				str.append("\n");
				for (int j = 0; j < (h - 1) / 2; j++) { // 二行目と三行目の繰り返し

					str.append("."); // 二行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append("#."); // 二文字目からの繰り返し　　　　　　　　　　
					}
					str.append("\n");

					str.append("#"); // 三行目の行の最初の文字
					for (int i = 0; i < (w - 1) / 2; i++) {
						str.append(".#"); // 二文字目からの繰り返し
					}
					str.append("\n");
				}
			}
			str.append("\n");
		}
		System.out.print(str);
	}

}