Множини#253

Множини

2 секунди
256 мегабайтів
Середня

Дано числа та .

Нехай — це множина всіх чисел від до .

Множина є підмножиною , якщо для кожного a\in A, також належить . Пуста множина () є підмножиною будь-якої множини.

Потрібно знайти значення функції f([n],k).

f([n],1) повертає кількість підмножин у множині .

f([n],k) де k>1 повертає суму f(s,k-1) де це підмножина .

Вхідні дані

Перший рядок містить два цілих числа (1\le n,k \le 10^9).

Вихідні дані

Потрібно вивести f([n],k). Так як відповідь може бути занадто велика, виведіть її по модулю 10^9+7.

Приклади

Приклад

Loading
Loading

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Примітка

У першому прикладі множина з елементу та k=1, тому f(\{1\},1)=2 та .

У другому прикладі множина з елементів та k=2. f(\{1,2\},2)=f(\{1,2\},1)+f(\{1\},1)+ +f(\{2\},1)+f(\{\emptyset\},1)=4+2+2+1=9.

Оцінювання

У цій задачі існують умовні блоки. Якщо ваше рішення буде працювати правильно для певних обмежень, то воно отримуватиме певну кількість балів. Зверніть увагу, що оцінювання й досі потестове.

  1. ( балів): k=1;

  2. ( балів): n\le 10, k\le 2;

  3. ( балів): n\le 15, k\le 3;

  4. ( балів): без додаткових обмежень.