#include<iostream>
#include<cstring>
using namespace std;
string str;
int dp[10000];
int flag;
const int INF=10000;
int main()
{
int time;
cin>>time;
while(time--)
{
cin>>str;
const char *a0="0";
str.insert(0,a0);
int len=str.size()-1;
dp[0]=0;
for(int i=1;i<=len;i++)dp[i]=INF;
for(int i=1;i<=len;i++)
{
for(int j=1;j<=i;j++)
{
flag=0;
for(int k=0;k<=(i-j)/2;k++)
{
if(str[i-k]!=str[j+k]){flag=1;break;}
}
if(!flag){dp[i]=min(dp[i],dp[j-1]+1);}
}
}for(int i=1;i<=len;i++)cout<<dp[i];
cout<<endl;
}return 0;
}
#include<cstring>
using namespace std;
string str;
int dp[10000];
int flag;
const int INF=10000;
int main()
{
int time;
cin>>time;
while(time--)
{
cin>>str;
const char *a0="0";
str.insert(0,a0);
int len=str.size()-1;
dp[0]=0;
for(int i=1;i<=len;i++)dp[i]=INF;
for(int i=1;i<=len;i++)
{
for(int j=1;j<=i;j++)
{
flag=0;
for(int k=0;k<=(i-j)/2;k++)
{
if(str[i-k]!=str[j+k]){flag=1;break;}
}
if(!flag){dp[i]=min(dp[i],dp[j-1]+1);}
}
}for(int i=1;i<=len;i++)cout<<dp[i];
cout<<endl;
}return 0;
}