import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		List<Integer> w = new ArrayList<Integer>();
		List<Integer> h = new ArrayList<Integer>();


		 for(int i=0;;i++){
			 h.add(i, scan.nextInt());
			 w.add(i, scan.nextInt());
			 if(w.get(i)==0 && h.get(i)==0) break;
		 }

		 for(int i=0;;i++){
			if(w.get(i)==0 && h.get(i)==0) break;
			if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i));
		 }
	}

	static void printFlame(int w,int h){

		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		
		for(int i=0 ;i< h -2;i++){
			System.out.print("#");
			for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			}
			System.out.println("#");
		}
		
		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		System.out.println();

	}

} import java.util.ArrayList; ArrayList java.util import java.util.List; List java.util import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		List<Integer> w = new ArrayList<Integer>();
		List<Integer> h = new ArrayList<Integer>();


		 for(int i=0;;i++){
			 h.add(i, scan.nextInt());
			 w.add(i, scan.nextInt());
			 if(w.get(i)==0 && h.get(i)==0) break;
		 }

		 for(int i=0;;i++){
			if(w.get(i)==0 && h.get(i)==0) break;
			if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i));
		 }
	}

	static void printFlame(int w,int h){

		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		
		for(int i=0 ;i< h -2;i++){
			System.out.print("#");
			for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			}
			System.out.println("#");
		}
		
		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		System.out.println();

	}

} Main public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		List<Integer> w = new ArrayList<Integer>();
		List<Integer> h = new ArrayList<Integer>();


		 for(int i=0;;i++){
			 h.add(i, scan.nextInt());
			 w.add(i, scan.nextInt());
			 if(w.get(i)==0 && h.get(i)==0) break;
		 }

		 for(int i=0;;i++){
			if(w.get(i)==0 && h.get(i)==0) break;
			if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i));
		 }
	} main {
		Scanner scan = new Scanner(System.in);
		List<Integer> w = new ArrayList<Integer>();
		List<Integer> h = new ArrayList<Integer>();


		 for(int i=0;;i++){
			 h.add(i, scan.nextInt());
			 w.add(i, scan.nextInt());
			 if(w.get(i)==0 && h.get(i)==0) break;
		 }

		 for(int i=0;;i++){
			if(w.get(i)==0 && h.get(i)==0) break;
			if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i));
		 }
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) List<Integer> w = new ArrayList<Integer>(); w new ArrayList<Integer>() List<Integer> h = new ArrayList<Integer>(); h new ArrayList<Integer>() for(int i=0;;i++){
			 h.add(i, scan.nextInt());
			 w.add(i, scan.nextInt());
			 if(w.get(i)==0 && h.get(i)==0) break;
		 } int i=0; int i=0; i 0 i++ i++ i {
			 h.add(i, scan.nextInt());
			 w.add(i, scan.nextInt());
			 if(w.get(i)==0 && h.get(i)==0) break;
		 } {
			 h.add(i, scan.nextInt());
			 w.add(i, scan.nextInt());
			 if(w.get(i)==0 && h.get(i)==0) break;
		 } h.add(i, scan.nextInt()) h.add h i scan.nextInt() scan.nextInt scan w.add(i, scan.nextInt()) w.add w i scan.nextInt() scan.nextInt scan if(w.get(i)==0 && h.get(i)==0) break; w.get(i)==0 && h.get(i)==0 w.get(i)==0 w.get(i) w.get w i 0 h.get(i)==0 h.get(i) h.get h i 0 break; for(int i=0;;i++){
			if(w.get(i)==0 && h.get(i)==0) break;
			if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i));
		 } int i=0; int i=0; i 0 i++ i++ i {
			if(w.get(i)==0 && h.get(i)==0) break;
			if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i));
		 } {
			if(w.get(i)==0 && h.get(i)==0) break;
			if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i));
		 } if(w.get(i)==0 && h.get(i)==0) break; w.get(i)==0 && h.get(i)==0 w.get(i)==0 w.get(i) w.get w i 0 h.get(i)==0 h.get(i) h.get h i 0 break; if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i)); h.get(i)>=3 h.get(i) h.get h i 3 printFlame(w.get(i),h.get(i)) printFlame w.get(i) w.get w i h.get(i) h.get h i String[] args args static void printFlame(int w,int h){

		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		
		for(int i=0 ;i< h -2;i++){
			System.out.print("#");
			for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			}
			System.out.println("#");
		}
		
		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		System.out.println();

	} printFlame {

		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		
		for(int i=0 ;i< h -2;i++){
			System.out.print("#");
			for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			}
			System.out.println("#");
		}
		
		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		System.out.println();

	} for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		} int j=0 ; int j=0 ; j 0 j < w j w j++ j++ j {
			System.out.print("#");
		} {
			System.out.print("#");
		} System.out.print("#") System.out.print System.out System System.out "#" System.out.println() System.out.println System.out System System.out for(int i=0 ;i< h -2;i++){
			System.out.print("#");
			for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			}
			System.out.println("#");
		} int i=0 ; int i=0 ; i 0 i< h -2 i h -2 h 2 i++ i++ i {
			System.out.print("#");
			for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			}
			System.out.println("#");
		} {
			System.out.print("#");
			for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			}
			System.out.println("#");
		} System.out.print("#") System.out.print System.out System System.out "#" for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			} int j=0 ; int j=0 ; j 0 j < w -2 j w -2 w 2 j++ j++ j {
				System.out.print(".");
			} {
				System.out.print(".");
			} System.out.print(".") System.out.print System.out System System.out "." System.out.println("#") System.out.println System.out System System.out "#" for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		} int j=0 ; int j=0 ; j 0 j < w j w j++ j++ j {
			System.out.print("#");
		} {
			System.out.print("#");
		} System.out.print("#") System.out.print System.out System System.out "#" System.out.println() System.out.println System.out System System.out System.out.println() System.out.println System.out System System.out int w w int h h public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		List<Integer> w = new ArrayList<Integer>();
		List<Integer> h = new ArrayList<Integer>();


		 for(int i=0;;i++){
			 h.add(i, scan.nextInt());
			 w.add(i, scan.nextInt());
			 if(w.get(i)==0 && h.get(i)==0) break;
		 }

		 for(int i=0;;i++){
			if(w.get(i)==0 && h.get(i)==0) break;
			if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i));
		 }
	}

	static void printFlame(int w,int h){

		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		
		for(int i=0 ;i< h -2;i++){
			System.out.print("#");
			for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			}
			System.out.println("#");
		}
		
		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		System.out.println();

	}

} public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		List<Integer> w = new ArrayList<Integer>();
		List<Integer> h = new ArrayList<Integer>();


		 for(int i=0;;i++){
			 h.add(i, scan.nextInt());
			 w.add(i, scan.nextInt());
			 if(w.get(i)==0 && h.get(i)==0) break;
		 }

		 for(int i=0;;i++){
			if(w.get(i)==0 && h.get(i)==0) break;
			if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i));
		 }
	}

	static void printFlame(int w,int h){

		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		
		for(int i=0 ;i< h -2;i++){
			System.out.print("#");
			for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			}
			System.out.println("#");
		}
		
		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		System.out.println();

	}

} Main
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		List<Integer> w = new ArrayList<Integer>();
		List<Integer> h = new ArrayList<Integer>();


		 for(int i=0;;i++){
			 h.add(i, scan.nextInt());
			 w.add(i, scan.nextInt());
			 if(w.get(i)==0 && h.get(i)==0) break;
		 }

		 for(int i=0;;i++){
			if(w.get(i)==0 && h.get(i)==0) break;
			if(/*w.get(i)<=100 &&*/ h.get(i)>=3) printFlame(w.get(i),h.get(i));
		 }
	}

	static void printFlame(int w,int h){

		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		
		for(int i=0 ;i< h -2;i++){
			System.out.print("#");
			for(int j=0 ; j < w -2 ;j++){
				System.out.print(".");
			}
			System.out.println("#");
		}
		
		for(int j=0 ; j < w  ;j++){
			System.out.print("#");
		}

		System.out.println();
		System.out.println();

	}

}