#include <string.h>
using namespace std;
//开灯问题
int main()
{
int n,k;
cin>>n>>k;
int a[n+1]; //灯为0是关着
memset(a,0,sizeof(a));
for(int i=1;i<=k;i++) //人
{
for(int j=1;j<=n;j++) //灯
{
if(j%i==0) a[j] = !a[j];
}
}
for(int i=1;i<=n;i++)
{
if(a[i] == 1)
cout<<i<<" ";
}
cout<<endl;
}
#include <iostream>
#include <string.h>
using namespace std;
#define max 10
int a[max][max];
int main()
{
int n;
cin>>n;
memset(a,0,sizeof(a));
int thenum = 0;
int x = 0,y = n-1;
thenum = a[x][y] = 1; //第一行最右边为最小,1
//在这个while中先判断再移动
while(thenum < n*n)
{
//先一直往下走走到底,但是如果不是最外行就要判断不要重复覆盖了外行的数据
while(x + 1 <n && !a[x+1][y]) a[++x][y] = ++thenum;
//走到最底下在往左走
while(y - 1>=0&& !a[x][y-1]) a[x][--y] = ++thenum;
//往上走
while(x - 1>=0&& !a[x-1][y]) a[--x][y] = ++thenum;
//往右
while(y + 1<n&&!a[x][y+1]) a[x][++y] = ++thenum;
}
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
{
cout<<a[x][y]<<" ";
}
cout<<endl;
}
}