Problem description


Anagramy
(anagramy-nt)
Limit pamięci: 32 MB
Limit czasu: 2.00 s

Anagramem słowa nazywamy dowolne słowo, które można uzyskać z pewnego przestawienia jego liter. Na przykład anagramem słowa zadanko jest odznaka.

Napisz program, który: wczyta słowo, wyznaczy liczbę jego anagramów (niekoniecznie mających jakiś sens) i wypisze wynik na standardowe wyjście.

Wejście

W pierwszym (jedynym) wierszu wejścia znajduje się ciąg małych liter alfabetu angielskiego – słowo, dla którego należy wyznaczyć liczbę anagramów.

Wyjście

W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna liczba całkowita – reszta z dzielenia przez 109 + 7 liczby anagramów wczytanego słowa.

Ograniczenia

Długość słowa nie przekracza 1 000 000 znaków.

W testach wartych łącznie 30% maksymalnej punktacji liczba anagramów słowa na wejściu nie przekracza 1 000.

W testach wartych łącznie 80% maksymalnej punktacji długość słowa nie przekracza 100 000 znaków.

Przykład

Wejście Wyjście
ananas
60