#include<bits/stdc++.h>
#define pb push_back
#define fors(i, a, b) for(int i = (a); i < (b); ++i)
#define all(vec) vec.begin(),vec.end()
using namespace std;
const int maxn = 1505;
#define P pair<int,int>
int a[maxn][maxn], vis[maxn*maxn],n,q,d[maxn];
vector<P> col[maxn][maxn],t;
void add(vector<P>&a, vector<P> b){for(auto p:b) a.pb(P(p.first+1,p.second));}
void sol(int x, int y){
    t.pb(P(1,a[x][y]));
    if(x>1) add(t,col[x-1][y]);
    if(y>1) add(t,col[x][y-1]);
    if(x>1&&y>1) add(t, col[x-1][y-1]);
    sort(all(t));
    for(P p:t) {
        if(!vis[p.second]) vis[p.second]=1,col[x][y].pb(p);
        if(col[x][y].size()>q) break;
    }for(P p:col[x][y]) vis[p.second] = 0; t.clear();
}
int main()
{
    cin>>n>>q;
    fors(i,1,n+1) fors(j,1,n+1) {
        scanf("%d", &a[i][j]),sol(i, j);
        int r = min(i,j);
        if(col[i][j].size()>q) r = min(col[i][j][q].first-1, r);d[1]++;d[r+1]--;
    }
    fors(i,1,n+1)d[i]+=d[i-1],printf("%d\n", d[i]);
	return 0;
}

