import java.util.*;
/*
Kolakoski序列是个随机生成的无限序列.
例如,当给定的整数组为[1,2]时,Kolakoski序列是这样的:
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,...]
如果我们将相邻的相同的数字分成一组,那么将会得到:
[[1],[2,2],[1,1],[2],[1],[2,2],[1],[2,2],[1,1],[2],[1,1],[2,2],[1],[2],[1,1],[2],[1],[2,2],[1,1],...]
可以看出,每组数字交替由1,2组成.
接下来对每个分组求它的长度,得到:
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,...]
可以看出,经过上述变换后,数列保持不变.
对于其他给定的整数组,同样可以用类似的方法构造Kolakoski序列,例如给定整数组[2,3]时:
[2,2,3,3,2,2,2,3,3,3,2,2,3,3,2,2,3,3,3,2,2,2,3,3,3,2,2,3,3,...]
给定整数组[2,1,3,1]时,构造得到如下:
[2,2,1,1,3,1,2,2,2,1,3,3,1,1,2,2,1,3,3,3,1,1,1,2,1,3,3,1,1,...]
输入
输入由两行组成,
第一行包括两个正整数n,m
第二行包括m个正整数a[]
数据规模与限制:
0<n<10000
1<m<1000
0<a[i]<1000
a[i]不等于a[i+1]
a[0]不等于a[m-1]
输出
每行只有一个数字,共n行
整数组a生成的Kolakoski序列的前n项
Example
Input
30 4
2 1 3 1
Output
2
2
1
1
3
1
2
2
2
1
3
3
1
1
2
2
1
3
3
3
1
1
1
2
1
3
3
1
1
2
*/
public class Sohu_kolakoskiSequece {
public static void getArr(int n, int m, int[] a) {
List<Integer> lists = new ArrayList<Integer>();
int flag = 0;
int k = 0;
int count = 0;
while(flag < n) {
if(k == m) k = 0;
lists.add(a[k]);
flag++;
for(int i = 0; i < lists.get(count) - 1; i++) {
lists.add(a[k]);
flag++;
}
k++;
count++;
}
// System.out.println(lists.size());
for (int s = 0; s < n; s++)
System.out.print(lists.get(s) + " ");
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int[] a = new int[m];
for(int i = 0; i < m; i++) {
a[i] = in.nextInt();
}
getArr(n,m,a);
}
}