Circle

时间限制:10s      空间限制:128MB

题目描述

n个排成一圈的格子,并且已知正整数km,你需要往每个格子中填入一个大于等于k
正整数。将相邻的一些格子(或一个单独的格子)中的数加起来,可以产生一个新的数。
假设使用格子中的数可以产生出m,m+1,…i,但不能产生i+1。求出往格子中填入哪些数,可
以使得i尽量大
 
 


输入格式

 三行,每行一个整数分别n,m,k。(k<=m


输出格式

第一行一个正整数,表示最大的i
下面若干行,每行为一个使i最大的填数方案,接照字典序列升序排列。每行N个正整数a1,a2....an,表示依次向格子填 入的数,其中a1是N个数中最小的数。
注意(1,1,2,3),(1,3,2,1),(1,2,3,1),(1,1,3,2)被认为是不同的方案,都要输出。


样例输入

5
2 1
 
 
 

样例输出

21
1  3 10 2 5
1  5 2 10 3
2  4 9 3 5
2  5 3 9 4
 
 
 

提示

n<=6,k<=m<=20。


题目来源

搜索