// 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;
}