#include <math.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #include <limits.h> #include <stdbool.h> int main(){ int n,k; scanf("%d %d",&n,&k); int flag_top=0;//0:4を出力、1:3を出力 int flag_bottom=0;//0:1を出力、1:2を出力 int flag_top_or_bottom=1;//1:上を出力,0:下を出力 int i=0; int suretu[n]; suretu[0]=3;suretu[1]=2; for(i=0;i<n-2-k;i++){ if(flag_top_or_bottom){//上を出力 if(flag_top){ suretu[i+2]=3; flag_top=0; }else{ suretu[i+2]=4; flag_top=1; } flag_top_or_bottom=0; }else if(!flag_top_or_bottom){//下を出力 if(flag_bottom){ suretu[i+2]=2; flag_bottom=0; }else{ suretu[i+2]=1; flag_bottom=1; } flag_top_or_bottom=1; } //puts("pass"); } for(i=n-k;i<n;i++){ suretu[i]=suretu[n-k-1]; //puts("pass2"); } for(i=0;i<n;i++){ printf("%d ",suretu[i]); }puts(""); return 0; }