좋은 집합

1부터 N까지의 수로 만든 공집합이 아닌 부분집합 중, 모든 수의 자릿수를 모았을 때 0부터 9가 각각 많아야 한 번씩만 나오는 것의 개수를 센다.

보통6비트 연산조합론동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

1부터 NN까지의 정수로 이루어진 집합 SS가 있다.

집합 SS의 부분 집합 가운데 좋은 집합이 몇 개인지 구하는 프로그램을 작성하시오.

좋은 집합은 원소로 들어 있는 모든 수를 10진법으로 적어 놓았을 때, 0부터 9까지의 각 숫자가 전체를 통틀어 최대 한 번만 나오는 집합이다. 공집합은 세지 않는다.

예를 들어 {12, 345, 67890}과 {47, 109}는 좋은 집합이고, {147, 342}는 숫자 4가 두 번 나오므로 좋은 집합이 아니다.

입력

첫째 줄에 NN이 주어진다. (1N1091 \le N \le 10^9)

출력

집합 SS의 부분 집합 가운데 좋은 집합의 개수를 1,000,000,007로 나눈 나머지를 출력한다.