#include
#include
using namespace std;
int n,m,r,c,data[105][105],result;
bool d[105][105];
bool test(){
for(int i=0;i){
for(int j=0;j){
if(data[i][j]==d[i][j])continue;
if(i+r>n||j+c>m)return false;
result++;
for(int p=i;p){
for(int q=j;q){
d[p][q] = !d[p][q];
}
}
}
}
return true;
}
int main(){
char ch[105];
while(scanf("%d%d%d%d",&n,&m,&r,&c)==4&&n){
memset(data,0,sizeof data);
for(int i=0;i){
scanf("%s",&ch);
for(int j=0;j){
data[i][j] = ch[j]-'0';
}
}
memset(d,false,sizeof d);
result = 0;
if(test()){
printf("%d\n",result);
}
else{
printf("-1\n");
}
}
return 0;
}