#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n;
int dp[105][105];
int num[105];
char ch[105];
bool check(char s[],int l,int len) {
for (int i=len; i<l; i++) {
if (s[i]!=s[i%len])return false;
}
return 0;
}
signed main() {
memset(dp,0x3f,sizeof(dp));
scanf("%s",ch);
n=strlen(ch);
//cout<<-1<<endl;
for (int i=0; i<n; i++) dp[i][i]=1;
for (int i=1; i<=100; i++) num[i]=num[i/10]+1;
for (int len=2; len<=n; len++) {
for (int i=0,j=len+i-1; j<n; i++,j++) {
//cout<<len<<endl;
//if (j>n) break;
//dp[i][j]=len+1;
for (int k=i; k<j; k++) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]);
for (int k=i; k<j; k++) {
int l=k-i+1;
if (len%l!=0) continue;
if (check(ch+i, len, l)) dp[i][j]=min(dp[i][j], dp[i][k]+2+num[len/l]);
}
}
}
cout<<dp[0][n-1]/2;
}
没过样例ww