Задачі
Кількість запитів
Кількість запитів
Дано два цілих числа \textbf{n}, \textbf{k}. Розглянемо функцію опрацювання запиту \textbf{\[from, to\]} деревом відрізків з вершини \textbf{idx}, яка відповідає відрізку масива \textbf{\[l, r\]} (\textbf{from} ≤ \textbf{to}, \textbf{l} ≤ \textbf{r}).
\textbf{int get (int idx, int l, int r, int from, int to ) \{}
\textbf{int ans = 1;}
\textbf{if (l == from && r == to)}
\textbf{return ans ;}
\textbf{int mid = ( l + r ) / 2;}
\textbf{if (from <= mid)}
\textbf{ans += get ( 2 * idx + 1, l, mid, from, min (mid, to));}
\textbf{if (to >= mid + 1 )}
\textbf{ans += get ( 2 * idx + 2, mid + 1, r, max (from, mid + 1), to) ;}
\textbf{return ans ;}
\textbf{\}}
Потрібно знайти кількість запитів \textbf{\[from, to\]} (\textbf{0} ≤ \textbf{from} ≤ \textbf{to} ≤ \textbf{n-1}), таких що функція \textbf{get(0, 0, n-1, from, to) }поверне у якості відповіді \textbf{k}. Відповідь виведіть по модулю \textbf{10^9 + 9}.
\InputFile
У першому рядку записано через пропуск два цілих числа: \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{10^18}), \textbf{k} (\textbf{0} ≤ \textbf{k} ≤ \textbf{10^18}).
\OutputFile
Виведіть одне ціле число --- відповідь до задачі \textbf{1000000009 }(\textbf{10^9 + 9}).
Вхідні дані #1
6 5
Вихідні дані #1
4