#include <bits/stdc++.h>
using namespace std;

int main() {
  int h,w,k;
  cin>>h>>w>>k;
  string choco[h];
  for(int i=0; i<h; i++) cin>>choco[i];

  int ans = h+w;
  for(int bit=0; bit<(2<<h-1); bit++) {
    int m = __builtin_popcount(bit);
    int cnt = m;
    int count[m+1];
    vector<int> cut;
    for(int i=0; i<m+1; i++) count[i]=0;
    for(int i=0; i<h-1; i++) {
      if((bit>>i)&1) cut.push_back(i+1);
    }
    cut.push_back(h);

    bool loop = true;
    bool out = false;
    for(int i=0; i<w; i++) {
      int posi = 0;
      for(int j=0; j<h; j++) {
        if(j>=cut[posi]) posi++;

        if(choco[j][i]=='1') count[posi]++;
        if(count[posi]>k) {
          cnt++;
          for(int k=0; k<m+1; k++) count[k]=0;
          i--;
          if(loop) out = true;
          loop = true;
          break;
        }
        if(j==h-1) loop=false;
      }

      if(out) break;
    }

    if(!out) ans = min(ans, cnt);
  }


  cout<<ans<<endl;

  return 0;
}