QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 32 MB Total points: 100

#12976. Sequences without Stammers

统计

We consider sequences of letters. We say a sequence $x_1,x_2,…,x_n$ contains a stammer, if we can find in it two occurrences of the same subsequence, one directly following the other, i.e. if for some $i$ and $j$ ($1 ≤ i < j ≤ \frac{n+i+1}{2}$) we have $x_i=x_j$, $x_{i+1}=x_{j+1}$,$…$,$x_{j-1}=x_{2j-i-1}$.

We are interested in $n$-element sequences having no stammers, built of the minimal number of different letters.

Example

For $n=3$ it is enough to use two letters, say $a$ and $b$. We have exactly two 3-element sequences without stammers build of those letters: $aba$ and $bab$. For $n=5$ we need three different letters. For example $abcab$ is a three-letter sequence without stammers. In the sequence $babab$ we have two stammers: $ba$ and $ab$.

Task

Write a program which:

  • reads the length of the sequence $n$,
  • computes an $n$-element sequence with no stammers built of the minimal number of different letters,
  • writes the result.

Input

In the first line of the standard input there is one positive integer $n$, $1 ≤ n ≤ 10,000,000$.

Output

Your program should write to the standard output. In the first line there should be one positive integer $k$ equal to the minimal number of different letters that must appear in an $n$-element sequence having no stammers.

In the second line one should write the computed sequence without stammers as a word that comprises $n$ lower case letters of English alphabet and is built only of the letters from a up to the $k$-th letter of the alphabet. If there are many such sequences, your program should write one of them.

Example

Input

5

Output

3
abcab

Discussions

About Discussions

The discussion section is only for posting: Editorials, General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues. Submitting multiple issues may cause your account to be banned.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.