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.awt.Point;
import java.io.*;
import java.math.BigInteger;
import java.util.*;

import static java.lang.Math.*;
     
    public class Solution implements Runnable {
     
            BufferedReader in;
            PrintWriter out;
            StringTokenizer tok = new StringTokenizer("");
     
            public static void main(String[] args) {
                    new Thread(null, new Solution(), "", 256 * (1L << 20)).start();
            }
     
            public void run() {
                    try {
                            long t1 = System.currentTimeMillis();
                            if (System.getProperty("ONLINE_JUDGE") != null) {
                                    in = new BufferedReader(new InputStreamReader(System.in));
                                    out = new PrintWriter(System.out);
                            } else {
                                    in = new BufferedReader(new FileReader("input.txt"));
                                    //out = new PrintWriter("output.txt");
                                    out = new PrintWriter(System.out);
                            }
                            Locale.setDefault(Locale.US);
                            solve();
                            in.close();
                            out.close();
                            long t2 = System.currentTimeMillis();
                            System.err.println("Time = " + (t2 - t1));
                    } catch (Throwable t) {
                            t.printStackTrace(System.err);
                            System.exit(-1);
                    }
            }
     
            String readString() throws IOException {
                    while (!tok.hasMoreTokens()) {
                            tok = new StringTokenizer(in.readLine());
                    }
                    return tok.nextToken();
            }
     
            int readInt() throws IOException {
                    return Integer.parseInt(readString());
            }
     
            long readLong() throws IOException {
                    return Long.parseLong(readString());
            }
     
            double readDouble() throws IOException {
                    return Double.parseDouble(readString());
            }
     
            // solution
     
            void solve() throws IOException {
            	int n = readInt();
            	
            	int answer = 0;
            	
            	for(int i = 0; i<n; i++)
            	{
            		for(int j = 0; j<n; j++){
            			if((i+j)%2 == 0) answer++;
            			
            		}
            		
            	}
            	
            	out.println(answer);
            	
            	for(int i = 0; i<n; i++)
            	{
            		for(int j = 0; j<n; j++){
            			if((i+j)%2 == 0) out.print("C");
            			else out.print(".");
            		}
            		out.println("");
            	}            	            		
            }
    }

