#include <bits/stdc++.h>
using namespace std;
int n, c[8005][8005], fal[8005], dp[8005], len[8005];
char s[8005];
void Init(char *s, int n, int *c) {
  fal[1] = 0, fal[2] = 1;
  for (int i = 2; i <= n; i++) {
    int j = fal[i];
    while (j && s[i] != s[j]) j = fal[j];
    fal[i + 1] = j + 1;
  }
  for (int i = 1; i <= n; i++) {
    int t = 1, k = i - fal[i + 1] + 1;
    if (i % k == 0) t = i / k;
    c[i] = i / t + len[t];
  }
}
int main() {
  scanf("%s", s + 1), n = strlen(s + 1);
  for (int i = 1; i <= n; i++) len[i] = len[i / 10] + 1;
  for (int i = 1; i <= n; i++) Init(s + i - 1, n - i + 1, c[i] + i - 1);
  for (int i = 1; i <= n; i++) {
    dp[i] = n + 1;
    for (int j = 1; j <= i; j++) dp[i] = min(dp[i], dp[j - 1] + c[j][i]);
  }
  printf("%d\n", dp[n]);
  return 0;
}
