1074 - 上台阶 V4
Description

小明的面前有一个n级的台阶,他每次可以上一级或是两级,现在他想知道每一种上台阶的方法,请你告诉他。

他现在站在0级台阶处!

具体的,请你求出有多少种上台阶的方法;对于每一种上台阶的方法,请你用数字表示每一步的台阶数,并将不同方法按字典序输出

例如,n=3,可行方法为111,12,21(3种),其中12表示第一步1个台阶,第二步2个台阶,因此按字典序输出:
3
111
12
21


Input
输入一个正整数n,表示台阶数量。


Output
第一行输出一个数m,表示上台阶的方法数。
之后m行每行输出一个由“1”、“2”组成的字符串,表示一种上台阶的方法。


Examples

Input

3

Output

3
111
12
21
Hint

对于100%的数据,1<=n<=20;


题目参数
Time Limit 1 second
Memory Limit 128 MB
提交次数 107
通过次数 57