using namespace std;
#include<bits/stdc++.h>
#define ll long long int
const int m=1e9;
int main(){
  int z=m;
  int h,w,k;
  cin>>h>>w>>k;
  vector<string>s(h);
  for(int i=0;i<h;i++)
    cin>>s[i];
  int pos=1<<(h-1);
  vector<int>store[w];
  for(int i=0;i<pos;i++){
    int ca=__builtin_popcount(i);
    int sum;
    for(int j=0;j<w;j++){
      sum=0;
      for(int k=0;k<h;k++){
        sum+=(s[k][j]&1);
        if((i>>k)&1){
          store[j].push_back(sum);
          sum=0;
        }
      }
      store[j].push_back(sum);
      for(int x:store[j]){
        if(x>k)
          ca=m;
      }
    }
    vector<int>ans(store[0].size());
    for(int j=0;j<w;j++){
      bool ok=0;
      for(int l=0;l<ans.size();l++){
          ok|=(ans[l]+store[j][l]>k);
      }
      if(ok){
        ca++;
        ans=vector<int>(ans.size());
      }
      for(int l=0;l<ans.size();l++)
        ans[l]+=store[j][l];
      store[j].clear();
    }
    z=min(ca,z);
  }
  cout<<z;
  return 0;
}
