#include<bits/stdc++.h>
using namespace std;
int h,w,q,ans=0xfffffff;
string s[15];
int main()
{
	cin>>h>>w>>q;
	for(int i=0;i<h;++i)
	 cin>>s[i];
	for(int a=0;a<(1<<(h-1));++a)
	{
		vector<int> b;
		for(int i=0;i<h-1;++i)
		 if(a&(1<<i)) b.push_back(i+1);
		b.push_back(h);
		int cur=__builtin_popcount(a),k=b.size();
		vector<int>cnt(k);
		for(int j=0;j<w;++j)
		{
			int t=0;
			vector<int> add(k);
			for(int i=0;i<h;++i)
			{
				if(i==b[t]) ++t;
				add[t]+=s[i][j]-'0';
			}
			for(int i=0;i<k;++i)
			 cnt[i]+=add[i];
			bool f=1;
			for(int i=0;i<k;++i)
			 if(cnt[i]>q) f=0;
			if(f) continue;
			++cur;
			for(int i=0;i<k;++i)
			 cnt[i]=add[i];
			f=1;
			for(int i=0;i<k;++i)
			 if(cnt[i]>q) f=0;
			if(!f) cur=0xfffffff;
		}
		ans=min(ans,cur);
	}
	cout<<ans;
	return 0;
}