Problem
El programador Vasya tuvo mala suerte: en lugar de unas vacaciones, lo enviaron a un viaje de negocios a una conferencia científica. "Necesitamos aumentar el nivel de conocimiento", dijo el jefe, "Se está llevando a cabo una importante conferencia sobre criptografía en Francia, y allí encriptaron en la época de Richelieu y descifraron los cifrados de otras personas en la época de Vieta".
Vasya descubrió rápidamente que ya había visto todas las pinturas del Louvre en alguna parte, la vista de la Torre Eiffel se volvió aburrida para él incluso antes de que el ratón la limpiara de la alfombra, y hacemos pirámides de vidrio para todo tipo de quioscos y restaurantes dudosos. En una palabra, simplemente no había nada que ver en París, no había dónde pescar, por lo que Vasya tuvo que asistir a los informes de la conferencia.
Uno de los oradores, una vez más tratando de desentrañar los cifrados de Bacon, presentó la hipótesis de que la clave de los misterios de Bacon se puede encontrar analizando todas las subcadenas posibles de las obras de Bacon. "¡Pero hay demasiados de ellos!" Vasya se sorprendió en voz alta. "¡No, no tanto!" - gritó el orador - "¡Calcula y lo verás por ti mismo!"
La misma noche, Vasya encontró las obras completas de Bacon en Internet. Escribió un programa que convertía los textos en una línea larga, eliminando todos los espacios y signos de puntuación de los textos. Y ahora Vasya está muy desconcertada: ¿cómo contar el número de subcadenas diferentes de esta cadena?
Entrada
La entrada contiene una cadena no vacía recibida por Vasya. La cadena consta únicamente de caracteres latinos en minúsculas. Su extensión no supera los 2000 caracteres.
Salida
Imprime el número de subcadenas diferentes de esta cadena.
Ejemplos
# |
Entrada |
Salida |
1 |
aaba |
8 |