import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{

	//private static final int BIG_NUM=2000000000;
	public static void main(String[]args){
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		
		int H,W;
		String work[]=new String[2];
		
		while(true){
			try{
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main{

	//private static final int BIG_NUM=2000000000;
	public static void main(String[]args){
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		
		int H,W;
		String work[]=new String[2];
		
		while(true){
			try{
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	}
} Main //private static final int BIG_NUM=2000000000;
	public static void main(String[]args){
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		
		int H,W;
		String work[]=new String[2];
		
		while(true){
			try{
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	} main {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		
		int H,W;
		String work[]=new String[2];
		
		while(true){
			try{
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	} BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) int H H W; W String work[]=new String[2]; work new String[2] 2 while(true){
			try{
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			}catch(IOException e){
				e.printStackTrace();
			}
		} true {
			try{
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			}catch(IOException e){
				e.printStackTrace();
			}
		} try{
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			}catch(IOException e){
				e.printStackTrace();
			} catch(IOException e){
				e.printStackTrace();
			} IOException e {
				e.printStackTrace();
			} e.printStackTrace() e.printStackTrace e {
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			} work=br.readLine().split("[\\s]+") work br.readLine().split("[\\s]+") br.readLine().split br.readLine() br.readLine br "[\\s]+" if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける. work[0].equals("0") && work[1].equals("0") work[0].equals("0") work[0].equals work[0] work 0 "0" work[1].equals("0") work[1].equals work[1] work 1 "0" {break;} break; H=Integer.parseInt(work[0]) H Integer.parseInt(work[0]) Integer.parseInt Integer work[0] work 0 W=Integer.parseInt(work[1]) W Integer.parseInt(work[1]) Integer.parseInt Integer work[1] work 1 StringBuilder sb=new StringBuilder(); sb new StringBuilder() for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				} int i=0; int i=0; i 0 i<H i H i++ i++ i {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				} {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				} for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					} int j=0; int j=0; j 0 j<W j W j++ j++ j {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					} {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					} if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						} (i+j)%2==0 (i+j)%2 (i+j) i j 2 0 {
							sb.append("#");
						} sb.append("#") sb.append sb "#" {
							sb.append(".");
						} sb.append(".") sb.append sb "." sb.append(String.format("%n", "")) sb.append sb String.format("%n", "") String.format String "%n" "" System.out.println(sb) System.out.println System.out System System.out sb String[]args args public class Main{

	//private static final int BIG_NUM=2000000000;
	public static void main(String[]args){
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		
		int H,W;
		String work[]=new String[2];
		
		while(true){
			try{
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	}
} public class Main{

	//private static final int BIG_NUM=2000000000;
	public static void main(String[]args){
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		
		int H,W;
		String work[]=new String[2];
		
		while(true){
			try{
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{

	//private static final int BIG_NUM=2000000000;
	public static void main(String[]args){
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		
		int H,W;
		String work[]=new String[2];
		
		while(true){
			try{
				work=br.readLine().split("[\\s]+");
				
				if(work[0].equals("0") && work[1].equals("0")){break;}	//両方とも0だったらループを抜ける.
				
				H=Integer.parseInt(work[0]);
				W=Integer.parseInt(work[1]);
				
				StringBuilder sb=new StringBuilder();
				for(int i=0; i<H; i++) {
					for(int j=0; j<W; j++) {
						if((i+j)%2==0){
							sb.append("#");
						}else {
							sb.append(".");
						}
					}
					sb.append(String.format("%n", ""));
				}
				System.out.println(sb);
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	}
}
