#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN = 100 + 10;
const int MAXM = 10 + 5;
bool f[MAXN][MAXM];
int g[MAXN][MAXM];
int dx[4] = {0,1,0,-1};
int dy[4] = {1,0,-1,0};
int n, k;
int num;
bool flag;
void init()
{
for (int i = 1;i <= MAXN - 5;i++)
for (int j = 1;j <= 10;j++)
f[i][j] = false;
}
void dfs(int x, int y, int op)
{
f[x][y] = true;
for (int i = 0;i <= 3;i++)
if (f[x + dx[i]][y + dy[i]] == false && g[x + dx[i]][y + dy[i]] == op)
{
num++;
dfs(x + dx[i],y + dy[i],op);
}
}
void down()
{
for (int i = n;i >= 1;i--)
{
for (int j = 1;j <= 10;j++)
{
if (g[i][j] != 0)
{
int w = i;
while (g[w + 1][j] == 0 && w <= n)
w++;
if (w != i)
{
g[w][j] = g[i][j];
g[i][j] = 0;
}
}
}
}
}
int main()
{
scanf("%d %d", &n, &k);
for (int i = 1;i <= n;i++)
for (int j = 1;j <= 10;j++)
scanf(" %d", &g[i][j]);
flag = true;
while (flag)
{
flag = false;
for (int i = 1;i <= n;i++)
{
for (int j = 1;j <= 10;j++)
{
if (g[i][j] != 0)
{
init();
num = 1;
dfs(i,j,g[i][j]);
if (num >= k)
{
flag = true;
for (int p = 1;p <= n;p++)
{
for (int h = 1;h <= 10;h++)
{
if (f[p][h])
g[p][h] = 0;
}
}
}
}
}
}
if (flag)
down();
}
for (int i = 1;i <= n;i++)
{
for (int j = 1;j <= 10;j++)
printf("%d", g[i][j]);
printf("\n");
}
return 0;
}