#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int sz=1e3+5;

char s[11][sz];

int box[11];

int main()
{
    int h,w,k;
    cin >> h >> w >> k;
    for(int i=0; i<h; i++) scanf("%s", s[i]);

    int ans = h*w;
    for(int m=0; m<(1<<(h-1)); m++) {
        memset(box, 0, sizeof box);
        bool imp = 0;
        int cnt = 0;
        for(int j=0, last=0; j<w; ) {
            for(int i=0, b=0; i<h; i++) {
                if(s[i][j]=='1') box[b]++;
                if(i<h && (m&(1<<i))) b++;
            }

            bool no = 0;
            for(int i=0; i<h; i++) {
                if(box[i]>k) no = 1;
            }

            if(no) {
                cnt++;
                if(j==last) {
                    imp = 1;
                    break;
                }
                last=j;
                memset(box, 0, sizeof box);
            }
            else j++;
        }
        if(!imp) ans = min(ans, cnt + __builtin_popcount(m));
    }

    cout << ans << endl;
}
