// acm.timus.ru : 1590
// Не сжатый бор.

#include <cstdio>
#include <cstring>
#include <cassert>

#define forn(i, n) for (int i = 0; i < n; i++)

const int mlen = 5000;
const int maxv = (int)5e6;

char s[mlen + 1];
int next[maxv][26];
int n, vn = 1;

void add( int l )
{
  int v = 0;
  while (l < n)
  {
    int &v1 = next[v][(int)s[l++]];
    if (!v1)
      v1 = vn++;
    v = v1;
  }
}

int main()
{
  gets(s);
  n = strlen(s);
  forn(i, n)
    s[i] -= 'a';
  forn(i, n)
    add(i);
  printf("%d\n", vn - 1);
  return 0;
}