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

char s[11][1010];
int main() {
	int n,m,k;
	scanf("%d%d%d", &n,&m,&k);
	for(int i=0; i<n; i++) scanf("%s", s[i]);
	int ans=1e9;
	for(int x=0;x<(1<<(n-1));x++) {
		int res=__builtin_popcount(x);
		int cnt[11]={};
		for(int j=0; j<m; j++) {
			int g=0, me[11]={};
			for(int i=0; i<n; i++) {
				me[g]+=(s[i][j]-'0');
				if ( x&(1<<(i)) ) g++;
			}
			bool ok=true, cut=false;
			for(int i=0; i<=g; i++) {
				if ( me[i]>k ) {ok=false; break;}
				if ( cnt[i]+me[i]>k ) cut=true;
			}
			if (!ok) {
				res+=1000000;
				break;
			}
			if (cut) {
				res++;
				for(int i=0; i<=g; i++) cnt[i]=me[i];
			} else {
				for(int i=0; i<=g; i++) cnt[i]+=me[i];
			}
		}
		ans=min(ans, res);
	}
	printf("%d\n", ans);
	return 0;
}