Олимпиадный тренинг

Задача . E. Номер автобуса


Вечер выдался не из легких... Вася играл безупречно, но, как это часто бывает, его подводила команда. Поражения следовали одно за другим, а Васе очень нужна была победа! Неудивительно, что в итоге Вася лёг спать чуть позже запланированного времени и совершенно не выспался.

Утром Вася пришел на остановку стал ждать автобус до университета. Мысли путались в светлой голове Васи, поэтому он не смог вспомнить номер нужного ему автобуса и сел в первый попавшийся — им оказался автобус с номером \(n\).

Сев в автобус, Вася подумал, что из-за своего состояния он мог перепутать порядок цифр в номере автобуса. Более того, некоторые цифры он мог «увидеть» несколько раз, но те цифры, которые он увидел, точно были в настоящем номере автобуса. Например, если Вася увидел номер 2028, то в оригинале номер автобуса мог быть 2028, 8022, 2820 или даже просто 820. При этом, например, номера 80, 22208, 52 точно не могли быть номером автобуса. Кроме того, разумеется, номер автобуса не начинался на цифру 0, поэтому, номер 082 тоже не мог быть настоящим номером автобуса.

По заданному числу \(n\) необходимо определить, сколько существует вариантов исходного номера автобуса.

Входные данные

В первой строке задано натуральное число \(n\) — номер автобуса, который увидел Вася (\(1 \leq n \leq 10^{18}\)). Гарантируется, что номер не начинается с цифры \(0\).

Выходные данные

Вывести единственное число — количество возможных вариантов настоящего номера автобуса.

Примечание

В первом примере возможны лишь варианты \(97\) и \(79\).

Во втором примере возможные номера автобуса (в порядке возрастания): \(208\), \(280\), \(802\), \(820\), \(2028\), \(2082\), \(2208\), \(2280\), \(2802\), \(2820\), \(8022\), \(8202\), \(8220\).


Примеры
Входные данныеВыходные данные
1 97
2
2 2028
13

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя