Codeforces Round 160 (Div. 2)
E
Maxim and Matrix
Codeforces
未评级
原题
← D→
翻译中…

Maxim loves to fill in a matrix in a special manner. Here is a pseudocode of filling in a matrix of size $(*m* + 1) × (*m* + 1)$:

翻译中…

image

翻译中…

Maxim asks you to count, how many numbers $*m*$ $(1 ≤ *m* ≤ *n*)$ are there, such that the sum of values in the cells in the row number $*m* + 1$ of the resulting matrix equals $*t*$.

翻译中…

Expression ($*x*$ $*xor*$ $*y*$) means applying the operation of bitwise excluding "OR" to numbers $*x*$ and $*y*$. The given operation exists in all modern programming languages. For example, in languages C++ and Java it is represented by character "^", in Pascal — by "xor".

翻译中…

Input

翻译中…

A single line contains two integers $*n*$ and $*t*$ $(1 ≤ *n*, *t* ≤ 10^{12}, *t* ≤ *n* + 1)$.

翻译中…

Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.

翻译中…

Output

翻译中…

In a single line print a single integer — the answer to the problem.

翻译中…

样例

Input #1
1 1
Output #1
1
InputCopy OutputCopy
Input #2
3 2
Output #2
1
InputCopy OutputCopy
Input #3
3 3
Output #3
0
InputCopy OutputCopy
Input #4
1000000000000 1048576
Output #4
118606527258
InputCopy OutputCopy
题目信息
题号
262E
时间限制
2 s
内存限制
256 MB

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。