public class Main {

	public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		java.util.Scanner sc = new java.util.Scanner(System.in);
		StringBuilder sb = new StringBuilder();

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

			if (h == 0 && w == 0)
				break;

			for (int i = 1; i <= h; i++) {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			}
			sb.append("\n");
		}

		System.out.print(sb);
	}
} public class Main {

	public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		java.util.Scanner sc = new java.util.Scanner(System.in);
		StringBuilder sb = new StringBuilder();

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

			if (h == 0 && w == 0)
				break;

			for (int i = 1; i <= h; i++) {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			}
			sb.append("\n");
		}

		System.out.print(sb);
	}
} Main public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		java.util.Scanner sc = new java.util.Scanner(System.in);
		StringBuilder sb = new StringBuilder();

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

			if (h == 0 && w == 0)
				break;

			for (int i = 1; i <= h; i++) {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			}
			sb.append("\n");
		}

		System.out.print(sb);
	} main {
		// TODO ?????????????????????????????????????????????
		java.util.Scanner sc = new java.util.Scanner(System.in);
		StringBuilder sb = new StringBuilder();

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

			if (h == 0 && w == 0)
				break;

			for (int i = 1; i <= h; i++) {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			}
			sb.append("\n");
		}

		System.out.print(sb);
	} java.util.Scanner sc = new java.util.Scanner(System.in); sc new java.util.Scanner(System.in) StringBuilder sb = new StringBuilder(); sb new StringBuilder() while (true) {
			int h = sc.nextInt();
			int w = sc.nextInt();

			if (h == 0 && w == 0)
				break;

			for (int i = 1; i <= h; i++) {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			}
			sb.append("\n");
		} true {
			int h = sc.nextInt();
			int w = sc.nextInt();

			if (h == 0 && w == 0)
				break;

			for (int i = 1; i <= h; i++) {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			}
			sb.append("\n");
		} int h = sc.nextInt(); h sc.nextInt() sc.nextInt sc int w = sc.nextInt(); w sc.nextInt() sc.nextInt sc if (h == 0 && w == 0)
				break; h == 0 && w == 0 h == 0 h 0 w == 0 w 0 break; for (int i = 1; i <= h; i++) {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			} int i = 1; int i = 1; i 1 i <= h i h i++ i++ i {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			} {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			} for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				} int j = 1; int j = 1; j 1 j <= w j w j++ j++ j {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				} {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				} if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					} i == 1 || i == h i == 1 i 1 i == h i h {
						sb.append("#");
					} sb.append("#") sb.append sb "#" {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					} if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						} j == 1 || j == w j == 1 j 1 j == w j w {
							sb.append("#");
						} sb.append("#") sb.append sb "#" {
							sb.append(".");
						} sb.append(".") sb.append sb "." sb.append("\n") sb.append sb "\n" sb.append("\n") sb.append sb "\n" System.out.print(sb) System.out.print System.out System System.out sb String[] args args public class Main {

	public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		java.util.Scanner sc = new java.util.Scanner(System.in);
		StringBuilder sb = new StringBuilder();

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

			if (h == 0 && w == 0)
				break;

			for (int i = 1; i <= h; i++) {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			}
			sb.append("\n");
		}

		System.out.print(sb);
	}
} public class Main {

	public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		java.util.Scanner sc = new java.util.Scanner(System.in);
		StringBuilder sb = new StringBuilder();

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

			if (h == 0 && w == 0)
				break;

			for (int i = 1; i <= h; i++) {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			}
			sb.append("\n");
		}

		System.out.print(sb);
	}
} Main
public class Main {

	public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		java.util.Scanner sc = new java.util.Scanner(System.in);
		StringBuilder sb = new StringBuilder();

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

			if (h == 0 && w == 0)
				break;

			for (int i = 1; i <= h; i++) {

				for (int j = 1; j <= w; j++) {

					if (i == 1 || i == h) {
						sb.append("#");
					} else {

						if (j == 1 || j == w) {
							sb.append("#");
						} else {
							sb.append(".");
						}

					}

				}
				sb.append("\n");

			}
			sb.append("\n");
		}

		System.out.print(sb);
	}
}