#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define fbo find_by_order
#define ook order_of_key
typedef long long ll;
typedef pair<int,int> ii;
typedef vector<int> vi;
typedef long double ld;
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;
typedef set<int>::iterator sit;
typedef map<int,int>::iterator mit;
typedef vector<int>::iterator vit;
string s[51];
int dp[51][40001];
int m, n;
void calcdp()
{
for(int i = 1; i <= m; i++)
{
for(int j = 1; j <= n; j++)
{
if(s[i-1][j-1] == '1') dp[i][j] = 1;
dp[i][j] += dp[i-1][j];
dp[i][j] += dp[i][j-1];
dp[i][j] -= dp[i-1][j-1];
}
}
}
int calc(int x1, int y1, int x2, int y2)
{
return (dp[x2][y2]-dp[x2][y1-1]-dp[x1-1][y2]+dp[x1-1][y1-1]);
}
int solve(int x1, int y1, int mx)
{
int cnt = 0;
for(int i = x1; i <= m; i++)
{
int lo = y1; int hi = n;
int ans = lo-1;
while(lo <= hi)
{
int mid = (lo+hi)>>1;
int cal = calc(x1, y1, i, mid);
if(cal > mx)
{
hi = mid - 1;
}
else
{
lo = mid + 1;
ans = mid;
}
}
cnt += (ans - y1 + 1);
}
return cnt;
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
cin>>m>>n;
for(int i = 0; i < m; i++)
{
cin >> s[i];
}
calcdp();
int l, r; cin>>l>>r;
ll ans = 0;
for(int i = 1; i <= m; i++)
{
for(int j = 1; j <= n; j++)
{
ans += solve(i, j, r);
if(l > 0) ans -= solve(i, j, l - 1);
}
}
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CiAKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZibyBmaW5kX2J5X29yZGVyCiNkZWZpbmUgb29rIG9yZGVyX29mX2tleQogCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHBhaXI8aW50LGludD4gaWk7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7IAp0eXBlZGVmIHRyZWU8aW50LCBudWxsX3R5cGUsIGxlc3M8aW50PiwgcmJfdHJlZV90YWcsIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4gcGJkczsKdHlwZWRlZiBzZXQ8aW50Pjo6aXRlcmF0b3Igc2l0Owp0eXBlZGVmIG1hcDxpbnQsaW50Pjo6aXRlcmF0b3IgbWl0Owp0eXBlZGVmIHZlY3RvcjxpbnQ+OjppdGVyYXRvciB2aXQ7CgpzdHJpbmcgc1s1MV07CmludCBkcFs1MV1bNDAwMDFdOwppbnQgbSwgbjsKdm9pZCBjYWxjZHAoKQp7Cglmb3IoaW50IGkgPSAxOyBpIDw9IG07IGkrKykKCXsKCQlmb3IoaW50IGogPSAxOyBqIDw9IG47IGorKykKCQl7CgkJCWlmKHNbaS0xXVtqLTFdID09ICcxJykgZHBbaV1bal0gPSAxOwoJCQlkcFtpXVtqXSArPSBkcFtpLTFdW2pdOwoJCQlkcFtpXVtqXSArPSBkcFtpXVtqLTFdOwoJCQlkcFtpXVtqXSAtPSBkcFtpLTFdW2otMV07CgkJfQoJfQp9CgppbnQgY2FsYyhpbnQgeDEsIGludCB5MSwgaW50IHgyLCBpbnQgeTIpCnsKCXJldHVybiAoZHBbeDJdW3kyXS1kcFt4Ml1beTEtMV0tZHBbeDEtMV1beTJdK2RwW3gxLTFdW3kxLTFdKTsKfQoKaW50IHNvbHZlKGludCB4MSwgaW50IHkxLCBpbnQgbXgpCnsKCWludCBjbnQgPSAwOwoJZm9yKGludCBpID0geDE7IGkgPD0gbTsgaSsrKQoJewoJCWludCBsbyA9IHkxOyBpbnQgaGkgPSBuOwoJCWludCBhbnMgPSBsby0xOwoJCXdoaWxlKGxvIDw9IGhpKQoJCXsKCQkJaW50IG1pZCA9IChsbytoaSk+PjE7CgkJCWludCBjYWwgPSBjYWxjKHgxLCB5MSwgaSwgbWlkKTsKCQkJaWYoY2FsID4gbXgpCgkJCXsKCQkJCWhpID0gbWlkIC0gMTsKCQkJfQkKCQkJZWxzZQoJCQl7CgkJCQlsbyA9IG1pZCArIDE7CgkJCQlhbnMgPSBtaWQ7CgkJCX0KCQl9CgkJY250ICs9IChhbnMgLSB5MSArIDEpOwoJfQkKCXJldHVybiBjbnQ7Cn0KCmludCBtYWluKCkKewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKCWNpbj4+bT4+bjsKCWZvcihpbnQgaSA9IDA7IGkgPCBtOyBpKyspCgl7CgkJY2luID4+IHNbaV07Cgl9CgljYWxjZHAoKTsKCWludCBsLCByOyBjaW4+Pmw+PnI7CglsbCBhbnMgPSAwOwoJZm9yKGludCBpID0gMTsgaSA8PSBtOyBpKyspCgl7CgkJZm9yKGludCBqID0gMTsgaiA8PSBuOyBqKyspCgkJewoJCQlhbnMgKz0gc29sdmUoaSwgaiwgcik7CgkJCWlmKGwgPiAwKSBhbnMgLT0gc29sdmUoaSwgaiwgbCAtIDEpOwoJCX0KCX0KCWNvdXQgPDwgYW5zOwp9Cg==