#include <stdio.h>
#include <stdlib.h>
long long int l,a[2][510000]={},g[300100] = {};
int n,k,t=0,b=0;
void eq(long long int x,int z)
{
if(t <= k) {
printf(" Eq:%1lld %1d\n",x,z);
a[0][t] = x;
a[1][t++] = z;
}
}
///아니 Lua하다 오니깐 if문에 ()있는거 어색함;;
void dq()
{
int z = a[1][b];
long long int x = a[0][b];
if(abs(g[z] - x ))
printf("%4d ,z:%4d x:%4lld g:%4lld t:%4d b:%4d\n",abs(g[z] - x),z,x,g[z],t,b);
//printf("%d\n",abs(g[z] - x));
if(x == g[z]) {
if(x > 0) {
if(z == 0 || n == 1)
{
eq(x-1,z);
}
else if(x-1!=g[z-1]) {
eq(x-1,z);
}
}
if(x < l) {
if(z==n || n == 1) {
eq(x+1,z);
}
else if(z < n && abs(g[z] - (x+1)) < abs(g[z+1] - (x+1))) {
eq(x+1,z);
}
}
}
else if(g[z] < x) {
if(x < l) {
if(n==1) {
eq(x+1,z);
}
else if(abs(g[z] - x) < abs(g[z+1] - x)) {
printf("%d<%d\n",abs(g[z] - x),abs(g[z+1] - x));
eq(x+1,z);
}
}
}
else if(g[z] > x) {
if(x > 0) {
if(n==1) {
eq(x-1,z);
}
else if(abs(g[z] - x+1) < abs(g[z-1] - x+1)) {
eq(x-1,z);
}
}
}
b++;
}
int main()
{
int i;
scanf("%lld %d %d",&l,&n,&k);
for(i=0;i<n;i++) {
scanf("%lld",&g[i]);
eq(g[i],i);
}
while(b < k) {
dq();
}
}
/** Test CaseBROOO
10 20
/0 1 2 3 4 5 6 7 8 9 10
/10 9 8 7 6 5 4 3 2 1 0
/0 1 2 3 4 5 4 3 2 1 0
success
4000 20 4001
0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 3200 3400 3600 3800
success
10 5 11
0 2 4 6 8
success
100 50 101
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28
30 32 34 36 38 40 42 44 46 48 50
52 54 56 58 60 62 64 66 68 70 72 74 76 78 80
82 84 86 88 90 92 94 96 98
success
1000000000000000000 1 500001
Failed
25 5 26
0 1 12 24 25
0
1
2
3
4
5
6
7
7
8
9
10
11
12
13
14
15
16
17
19
20
21
22
23
24
25
*/



