Iahub likes chess very much. He even invented a new chess piece named Coder. A Coder can move (and attack) one square horizontally or vertically. More precisely, if the Coder is located at position (x, y), he can move to (or attack) positions (x + 1, y), (x–1, y), (x, y + 1) and (x, y–1).

Iahub wants to know how many Coders can be placed on an n × n chessboard, so that no Coder attacks any other Coder.

Input

The first line contains an integer n (1 ≤ n ≤ 1000).

Output

On the first line print an integer, the maximum number of Coders that can be placed on the chessboard.

On each of the next n lines print n characters, describing the configuration of the Coders. For an empty cell print an '.', and for a Coder print a 'C'.

If there are multiple correct answers, you can print any.

Examples

Input

2


Output

2
C.
.C
import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[] args) throws IOException{
        Reader sc = new Reader();
        PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out), true);
        	
        int n = sc.nextInt();

        int ans1 = 0;int ans2 = 0;int ans = 0;

        String[] a = new String[n]; 
        Arrays.fill(a, ".");
        String[] b = new String[n];
        Arrays.fill(b, ".");

        for(int i=0; i<n; i++){
        	if(i%2==0){
        		a[i] = "C";
        		ans1++;

        		
        	}
        	else{
        		b[i] = "C";
        		ans2++;
        		
        	}
        }

        if(n%2==0){
        	ans = (n/2)*(ans1+ans2);
        }
        else{
        	ans = ans1*((n/2)+1)+ans2*(n/2);
        }

        out.println(ans);




        for(int i=0; i<n; i++){
        	if(i%2==0){
        		for(int j=0; j<n; j++){
        			out.print(a[j]);
        		}
        	}
        	else{
        		for(int j=0; j<n; j++){
        			out.print(b[j]);
        		}
        	}
        	out.println();
        }

	}	


    
}




/*Reader class*/
class Reader {
        BufferedReader br;
        StringTokenizer st;
 
        public Reader() {
            br = new BufferedReader(new InputStreamReader(System.in));
        }
 
        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }
 
        int nextInt() { return Integer.parseInt(next()); }
        long nextLong() { return Long.parseLong(next()); }
        double nextDouble() { return Double.parseDouble(next()); }
         
        String nextLine(){
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
    }