Bebeluși Plângăcioși

Time limit: 0.1s Memory limit: 64MB Input: Output:

Cerință

Într-un hotel se află nn camere pe același etaj. Cele nn camere sunt dispuse în linie. Într-o seară trebuie cazați, mm bebelusi. După cum bine se știe, bebelușii se apucă să plângă deseori în timpul nopții și, de asemenea, ei se trezesc foarte ușor. Mai mult, dacă există vreun bebeluș care plânge la o cameră alaturată, începe și el să plângă. Hotelul își dorește din tot sufletul să evite reacții în lanț, de plâns și vă cere ajutorul.
În câte moduri putem așeza cei mm bebeluși în cele nn camere astfel încât doi bebeluși să nu stea în camere alăturate?

Date de intrare

Pe singura linie se dau două numere nn și mm separate printr-un spațiu.

Date de ieșire

Pe singura linie se va afișa un singur număr, respectiv numărul de moduri de a așeza bebelușii în camere modulomodulo 109+710^9+7.

Restricții și precizări

  • 1mn10001 \leq m \leq n \leq 1000;

Subtask-uri

# Punctaj Restricții
1 20 1n1000,1m21 \leq n \leq 1000, 1 \leq m \leq 2
2 10 1n100,m=31 \leq n \leq 100, m = 3
3 20 1mn121 \leq m \leq n \leq 12
4 20 1mn1001 \leq m \leq n \leq 100
5 20 Nicio constrângere suplimentară

Exemplul 1

stdin

6 3

stdout

4

Exemplul 2

stdin

10 8

stdout

0

Exemplul 3

stdin

512 64

stdout

988646651

Log in or sign up to be able to send submissions!