시간 제한메모리 제한제출정답맞힌 사람정답 비율
10 초 512 MB279637.500%

문제

수열 A = a1, a2, ..., an에 연산 P를 적용하면 수열 B = b1, b2, ..., bn이 된다. 이때, bi = a1 | a2 | ... | ai 이며, |는 비트 OR 연산이다.

1보다 크거나 같고, 2k보다 작은 정수로 이루어진 길이가 n인 모든 수열에 연산 P를 적용시키려고 한다. 이때, 연산을 적용한 결과가 오름차순(b1 < b2 < ... < bn)이 되는 수열의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 n과 k (1 ≤ n ≤ 1018, 1 ≤ k ≤ 30,000)이 주어진다.

출력

첫째 줄에 수열의 개수를 109+7로 나눈 나머지를 출력한다.

예제 입력 1

1 2

예제 출력 1

3

예제 입력 2

2 3

예제 출력 2

30

예제 입력 3

3 3

예제 출력 3

48