/* 搜狐2018秋季校招 — Kolakoski序列
* 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]...]
* 可以看出,每组数字交替由1,2组成。
* 接下来对每个分组求他的长度,得到
* [1,2,2,1,1,2,1,2,2,1,2 ...]
* 可以看出,经过如上的变换后数列保持不变。
*
* 输入描述:
* 输入由两行组成:
* 第一行包括两个正整数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项
*
* 示例:
* 输入
* 30 4
* 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
* 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]...]
* 可以看出,每组数字交替由1,2组成。
* 接下来对每个分组求他的长度,得到
* [1,2,2,1,1,2,1,2,2,1,2 ...]
* 可以看出,经过如上的变换后数列保持不变。
*
* 输入描述:
* 输入由两行组成:
* 第一行包括两个正整数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项
*
* 示例:
* 输入
* 30 4
* 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
*/
package com.bjut.study.test;
import java.util.Scanner;
public class Main_20170828_Sohu {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
while (true) {
int n = in.nextInt();
int m = in.nextInt();
int[] nums = new int[m];
int[] results = new int[n];
for (int i = 0; i < m; i++) {
nums[i] = in.nextInt();
}
int p = 0, t = 0, s = 0;
results[0] = nums[0];
while (t < n) {
for (int i = 0; i < results[p]; i++) {
results[t] = nums[s];
t++;
}
if (s == 3)
s = 0;
else {
s++;
}
p++;
}
for (int i = 0; i < n - 1; i++) {
System.out.println(results[i]);
}
}
}
}