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;
			
			//上の部分
			for (int i = 0; i < w; i++)
				str.append("#");        
			str.append("\n");           
			
			//中の部分
			for (int i = 0; i < h - 2; i++) {
				str.append("#");
				for (int j = 0; j < w - 2; j++) {
					str.append(".");
				}
				str.append("#\n");
			}
			
			//下の部分
			for (int i = 0; i < w; i++)
				str.append("#");
			str.append("\n");
			
			//1行あける
			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;
			
			//上の部分
			for (int i = 0; i < w; i++)
				str.append("#");        
			str.append("\n");           
			
			//中の部分
			for (int i = 0; i < h - 2; i++) {
				str.append("#");
				for (int j = 0; j < w - 2; j++) {
					str.append(".");
				}
				str.append("#\n");
			}
			
			//下の部分
			for (int i = 0; i < w; i++)
				str.append("#");
			str.append("\n");
			
			//1行あける
			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;
			
			//上の部分
			for (int i = 0; i < w; i++)
				str.append("#");        
			str.append("\n");           
			
			//中の部分
			for (int i = 0; i < h - 2; i++) {
				str.append("#");
				for (int j = 0; j < w - 2; j++) {
					str.append(".");
				}
				str.append("#\n");
			}
			
			//下の部分
			for (int i = 0; i < w; i++)
				str.append("#");
			str.append("\n");
			
			//1行あける
			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;
			
			//上の部分
			for (int i = 0; i < w; i++)
				str.append("#");        
			str.append("\n");           
			
			//中の部分
			for (int i = 0; i < h - 2; i++) {
				str.append("#");
				for (int j = 0; j < w - 2; j++) {
					str.append(".");
				}
				str.append("#\n");
			}
			
			//下の部分
			for (int i = 0; i < w; i++)
				str.append("#");
			str.append("\n");
			
			//1行あける
			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;
			
			//上の部分
			for (int i = 0; i < w; i++)
				str.append("#");        
			str.append("\n");           
			
			//中の部分
			for (int i = 0; i < h - 2; i++) {
				str.append("#");
				for (int j = 0; j < w - 2; j++) {
					str.append(".");
				}
				str.append("#\n");
			}
			
			//下の部分
			for (int i = 0; i < w; i++)
				str.append("#");
			str.append("\n");
			
			//1行あける
			str.append("\n");  
		} true {
			int h = scan.nextInt();
			int w = scan.nextInt();

			if (h == 0 && w == 0)
				break;
			
			//上の部分
			for (int i = 0; i < w; i++)
				str.append("#");        
			str.append("\n");           
			
			//中の部分
			for (int i = 0; i < h - 2; i++) {
				str.append("#");
				for (int j = 0; j < w - 2; j++) {
					str.append(".");
				}
				str.append("#\n");
			}
			
			//下の部分
			for (int i = 0; i < w; i++)
				str.append("#");
			str.append("\n");
			
			//1行あける
			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; for (int i = 0; i < w; i++)
				str.append("#"); int i = 0; int i = 0; i 0 i < w i w i++ i++ i str.append("#"); str.append("#") str.append str "#" str.append("\n") str.append str "\n" for (int i = 0; i < h - 2; i++) {
				str.append("#");
				for (int j = 0; j < w - 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 - 2; j++) {
					str.append(".");
				}
				str.append("#\n");
			} {
				str.append("#");
				for (int j = 0; j < w - 2; j++) {
					str.append(".");
				}
				str.append("#\n");
			} str.append("#") str.append str "#" for (int j = 0; j < w - 2; j++) {
					str.append(".");
				} int j = 0; int j = 0; j 0 j < w - 2 j w - 2 w 2 j++ j++ j {
					str.append(".");
				} {
					str.append(".");
				} str.append(".") str.append str "." str.append("#\n") str.append str "#\n" for (int i = 0; i < w; i++)
				str.append("#"); int i = 0; int i = 0; i 0 i < w i w i++ i++ i 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;
			
			//上の部分
			for (int i = 0; i < w; i++)
				str.append("#");        
			str.append("\n");           
			
			//中の部分
			for (int i = 0; i < h - 2; i++) {
				str.append("#");
				for (int j = 0; j < w - 2; j++) {
					str.append(".");
				}
				str.append("#\n");
			}
			
			//下の部分
			for (int i = 0; i < w; i++)
				str.append("#");
			str.append("\n");
			
			//1行あける
			str.append("\n");  
		}
		System.out.print(str);
	}
}