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.*;
import java.math.*;

public class test {

	
static class InputReader {
    public BufferedReader reader;
    public StringTokenizer tokenizer;

    public InputReader(InputStream stream) {
        reader = new BufferedReader(new InputStreamReader(stream), 32768);
        tokenizer = null;
    }

    public String next() {
        while (tokenizer == null || !tokenizer.hasMoreTokens()) {
            try {
                tokenizer = new StringTokenizer(reader.readLine());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return tokenizer.nextToken();
    }

    public int nextInt() {
        return Integer.parseInt(next());
    }

    public long nextLong() {
	return Long.parseLong(next());
    }

}


 static class Task {	

	public int popcount( int x ) {

		int rt = 0;
		while(x>0) {
			++rt;
			x -= x&-x;
		}

		return rt;
	}

	public void solve(int testNumber, InputReader in, PrintWriter out) {
  		while(testNumber-->0) {

			int n  = in.nextInt();
			int ans = 0;
			int grid[][]  = new int[n][n];

			for(int i=0;i<n;++i)
				for(int j=0;j<n;++j)
					grid[i][j] = '.';

			for(int i=0;i<n;++i) {

				for(int j=0;j<n;++j) {

					if(i%2==0 && j%2==0) {
						grid[i][j]='C';
						++ans;
					}

					if(i%2==1 && j%2==1) {
						grid[i][j]='C';
						++ans;
					}
				}		
			}

			out.println(ans);
			for(int i=0;i<n;++i) {

				for(int j=0;j<n;++j) {
					out.print((char)grid[i][j]);

				}

				out.println();

			}

		}	
	
	}
	
}


    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        Task solver = new Task();
        int test  = 1;
        solver.solve(test, in, out);
        out.close();
    }

}





