Time Limit: 3 s
Memory Limit: 64 MB

Submission：1
AC：0
Score：99.98

DNA computing is a form of computing which uses DNA, biochemistry and molecular biology, instead of the traditional silicon-based computer technologies. DNA computing, or, more generally, molecular computing, is a fast developing interdisciplinary area. Research and development in this area concerns theory, experiments and applications of DNA computing. DNA computing is fundamentally similar to parallel computing in that it takes advantage of the many different molecules of DNA to try many different possibilities at once. So, many NP problem can be solved through DNA computing , such as Hamiltonian path problem, SAT problems, and so on.

The core reaction of DNA computing is the specific hybridization, which may results in incorrect or undesirable computations. Therefore, so far much works have focused on designing the DNA sequences to make the molecular computation more reliable.

The DNA encoding problem can be described as follows: the encoding alphabet of DNA sequence is the set of nucleic acid bases *Σ={A, C, G, T}*,and in the encoding set Z of DNA strands whose length is L, *Z=Σ ^{1}={<b_{1}b_{2}...b_{L}>|b_{i}∈Σ, i=1,2,...,L}*, and

(1) ∀x_{i}∈W, the total number of A、C in x_{i} is L/2;

(2) ∀x_{i}, x_{j}∈W, the hamming distance （the **Hamming distance** between two strings of equal length is the number of positions for which the corresponding symbols are different）between x_{i} and x_{j} is at least D.

In order to simplify the encoding problem, we don’t want you to find such a subset with the biggest size, we only want you to find the best subset satisfying the two conditions. The strategy to compare two subset is as follows:

Suppose *W _{1}*,

For examples :

(1) W_{1} = { A, C, G, T}, W_{2} = {A, T}

W_{1} is better than W_{2} because W_{2} is a subset of W_{1}.

(2) W_{1}={AC, CT, AT}, W_{2}={AG, AC}

Firstly ,we order them, so W_{1}={AC, AT, CT}, W_{2}={AC, AG}

Then W_{2} is better than W_{1} because AG is in front of AT.

Now , we will give you the length L and the distance D, can you find the best code set.

There are several cases. Each case contains two integers, L (0<L≤25) and D (0≤D≤L) .

For each case, output several lines, the first line is the size of the code set, then print all the elements of the code set in lexicographic. A element per line.

input

2 2

output

4
AG
CT
GA
TC