#include<bits/stdc++.h>
#define ll long
#define mod 1000000007
using namespace std;
ll root=1,n,m,k;
vector<ll>ly[25];
vector<ll>ttp;
ll tot=1,son[2200006][2],sz[2200006][22][2],a[1100006],b[1100006],dep[2200006],ex[30],lg[2200006];
void work()
{
ex[0]=1;
for(ll i=1;i<30;i++)ex[i]=ex[i-1]<<1;
for(ll i=1;i<=2200000;i++)
{
lg[i]=lg[i-1];
if(i==ex[lg[i]+1])lg[i]++;
}
lg[0]=-1;
cin>>n>>m>>k;
ly[m+1].push_back(root);
dep[root]=0;
for(ll i=1;i<=n;i++)
{
string s;
cin>>s;
ll now=root;
for(ll j=0;j<m;j++)
{
ll d;
if(s[j]=='A')d=0;
else d=1;
if(son[now][d]==0)
{
tot++;
son[now][d]=tot;
}
now=son[now][d];
dep[now]=j+1;
ly[m-j].push_back(now);
for(ll p=dep[now]-1;p<m;p++)
{
if(s[p]=='A')
{
sz[now][m-p][0]++;
cout<<now<<' '<<m-p<<' '<<0<<endl;
}
else
{
sz[now][m-p][1]++;
cout<<now<<' '<<m-p<<' '<<1<<endl;
}
}
}
}
for(ll i=1;i<=m+1;i++)
{
ttp.clear();
sort(ly[i].begin(),ly[i].end());
for(ll j=0;j<ly[i].size();j++)
{
if(j==0||ly[i][j]!=ly[i][j-1])
{
ttp.push_back(ly[i][j]);
}
}
ly[i].clear();
for(ll j=0;j<ttp.size();j++)
{
ly[i].push_back(ttp[j]);
}
}
for(ll i=1;i<=m;i++)
{
ll nn[21],yy=0;
memset(nn,0,sizeof(nn));
for(ll j=0;j<ly[i+1].size();j++)
{
ll ls=son[ly[i+1][j]][0];
ll rs=son[ly[i+1][j]][1];
if(ls&&rs)
{
yy+=sz[ls][m+1-dep[ls]][0]*sz[rs][m+1-dep[rs]][1]+sz[ls][m+1-dep[ls]][1]*sz[rs][m+1-dep[rs]][0];
for(ll p=i;p>=1;p--)
{
nn[p]+=sz[ls][p][0]*sz[rs][p][1]+sz[ls][p][1]*sz[rs][p][0];
}
cout<<ly[i+1][j]<<' '<<ls<<' '<<rs<<' '<<i<<' '<<j<<':'<<yy<<' ';
for(ll p=i;p>=1;p--)cout<<nn[p]<<' ';
cout<<endl;
}
}
for(ll j=0;j<ex[i-1];j++)
{
if(j!=0)
b[ex[i-1]+j]=b[j]+yy;
else
b[j]+=nn[lg[j]+1];
b[j]=b[j]+res;
cout<<j<<' '<<ex[i-1]+j<<"<-"<<b[ex[i-1]+j]<<' '<<b[j]<<endl;
}
for(ll j=0;j<ex[i];j++)
{
a[j]=b[j];
cout<<i<<','<<j<<':'<<a[j]<<endl;
}
}
ll answer=0;
for(ll i=1;i<ex[m];i++)
{
if(a[i]>=k)
{
cout<<"Answer:"<<i<<endl;
answer++;
}
}
cout<<answer;
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
ll T=1;
while(T--)
{
work();
}
}