Problem
Programmer Vasya tidak bernasib baik - bukannya bercuti, dia dihantar dalam perjalanan perniagaan ke persidangan saintifik. "Kita perlu meningkatkan tahap pengetahuan," kata bos, "Satu persidangan penting mengenai kriptografi sedang diadakan di Perancis - dan di sana mereka menyulitkan kembali pada zaman Richelieu dan memecahkan sifir orang lain pada zaman Vieta."
Vasya dengan cepat mengetahui bahawa dia telah melihat semua lukisan Louvre di suatu tempat, pemandangan Menara Eiffel menjadi membosankan baginya walaupun sebelum tetikus mengelapnya dari permaidani, dan kami membuat piramid kaca sedemikian untuk semua jenis kiosk dan kedai makan yang meragukan. Pendek kata, tiada apa yang dapat dilihat di Paris, tiada tempat untuk memancing, jadi Vasya terpaksa menghadiri laporan di persidangan itu.
Salah seorang penceramah, sekali lagi cuba membongkar sifir Bacon, mengemukakan hipotesis bahawa kunci kepada misteri Bacon boleh ditemui dengan menganalisis semua kemungkinan subrentetan karya Bacon. "Tetapi terdapat terlalu ramai daripada mereka!" Vasya terkejut kuat. "Tidak, tidak begitu!" - jerit pembesar suara, - "Kira, dan anda akan lihat sendiri!"
Pada petang yang sama, Vasya menemui karya lengkap Bacon di Internet. Dia menulis program yang menukar teks menjadi satu baris panjang, mengalih keluar semua ruang dan tanda baca daripada teks. Dan kini Vasya sangat hairan - bagaimana untuk mengira bilangan subrentetan berbeza rentetan ini?
Input
Input mengandungi rentetan bukan kosong yang diterima oleh Vasya. Rentetan hanya terdiri daripada aksara Latin huruf kecil. Panjangnya tidak melebihi 2000 aksara.
Output
Cetak bilangan subrentetan berbeza rentetan ini.
Contoh
# |
Input |
Output |
1 |
aaba |
8 |
jadual>