#include <bits/stdc++.h>
using namespace std;
#define ff(i, a, b) for(auto i=(a); i<=(b); ++i)
#define ffr(i, b, a) for(auto i=(b); i>=(a); --i)
#define nl "\n"
#define ss " "
#define pb push_back
#define ppb pop_back()
#define pf push_front
#define ppf pop_front()
#define fi first
#define se second
#define sz(s) (int)s.size()
#define ms(a,x) memset(a, x, sizeof (a))
#define re exit(0)
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<pair<int, int> > vpii;
typedef vector<pair<ll, ll> > vpll;
const ll mod=1e9+7, maxn=1e6+5, inf=1e17;
void rf(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
if(fopen("o.inp","r")){
freopen("o.inp","r",stdin); freopen("o.out","w",stdout);
}
}
int n, m, k, x, a[900][900];
int main()
{
rf();
cin>>n>>m>>k>>x;
ff(i, 1, n) ff(j, 1, m) cin>>a[i][j];
int ans=0;
ff(i, k, n)
{
ff(j, k, m)
{
unordered_set<int> c;
int x=i-k+1, y=j-k+1;
ff(u, x,i) ff(v, y, j) c.insert(a[u][v]);
if(sz(c)<=x) ++ans;
cout<<sz(c)<<ss;
}
cout<<nl;
}
cout<<ans;
re;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGZmKGksIGEsIGIpIGZvcihhdXRvIGk9KGEpOyBpPD0oYik7ICsraSkKI2RlZmluZSBmZnIoaSwgYiwgYSkgZm9yKGF1dG8gaT0oYik7IGk+PShhKTsgLS1pKQojZGVmaW5lIG5sICJcbiIKI2RlZmluZSBzcyAiICIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBwcGIgcG9wX2JhY2soKQojZGVmaW5lIHBmIHB1c2hfZnJvbnQKI2RlZmluZSBwcGYgcG9wX2Zyb250KCkKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHN6KHMpIChpbnQpcy5zaXplKCkKI2RlZmluZSBtcyhhLHgpIG1lbXNldChhLCB4LCBzaXplb2YgKGEpKQojZGVmaW5lIHJlIGV4aXQoMCkKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgdmVjdG9yPGxsPiB2bGw7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwp0eXBlZGVmIHBhaXI8bGwsIGxsPiBwbGw7CnR5cGVkZWYgdmVjdG9yPHBhaXI8aW50LCBpbnQ+ID4gdnBpaTsKdHlwZWRlZiB2ZWN0b3I8cGFpcjxsbCwgbGw+ID4gdnBsbDsKCmNvbnN0IGxsIG1vZD0xZTkrNywgbWF4bj0xZTYrNSwgaW5mPTFlMTc7Cgp2b2lkIHJmKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpZihmb3Blbigiby5pbnAiLCJyIikpewogICAgICAgIGZyZW9wZW4oIm8uaW5wIiwiciIsc3RkaW4pOyBmcmVvcGVuKCJvLm91dCIsInciLHN0ZG91dCk7CiAgICB9Cn0KCgppbnQgbiwgbSwgaywgeCwgYVs5MDBdWzkwMF07CgppbnQgbWFpbigpCnsKICAgIHJmKCk7CiAgICBjaW4+Pm4+Pm0+Pms+Png7CiAgICBmZihpLCAxLCBuKSBmZihqLCAxLCBtKSBjaW4+PmFbaV1bal07CiAgICBpbnQgYW5zPTA7CiAgICBmZihpLCBrLCBuKQogICAgewogICAgICAgIGZmKGosIGssIG0pCiAgICAgICAgewogICAgICAgICAgICB1bm9yZGVyZWRfc2V0PGludD4gYzsKICAgICAgICAgICAgaW50IHg9aS1rKzEsIHk9ai1rKzE7CiAgICAgICAgICAgIGZmKHUsIHgsaSkgZmYodiwgeSwgaikgYy5pbnNlcnQoYVt1XVt2XSk7CiAgICAgICAgICAgIGlmKHN6KGMpPD14KSArK2FuczsKICAgICAgICAgICAgY291dDw8c3ooYyk8PHNzOwogICAgICAgIH0KICAgICAgICBjb3V0PDxubDsKICAgIH0KICAgIGNvdXQ8PGFuczsKICAgIHJlOwp9Cg==