Вкусные тортики | 프로그래밍의 벗 PivotOJ
PivotOJ

Вкусные тортики

시간 제한: 1000ms메모리 제한: 1024MB출처: MOOI 2013-14 qualBOJ 30849
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

Каждый день летних каникул Миша рисовал в блокнотике аккуратное прямоугольное поле размером N × M клеточек и закрашивал на нём некоторые клеточки. Отметим, что каждый день у Миши получалась новая картинка, непохожая на другие, таким образом, всего у Миши получилось 2NM картинок (на рисунке ниже закрашенные клетки обозначены серым).

[이미지 1]

Каждый день его друг Володя помогал Мише скрасить тяжелые будни: он брал очередной Мишин рисунок и пытался покрыть незакрашенные клетки этого рисунка прямоугольниками размера 1 × 2 (при этом каждая незакрашенная клеточка рисунка должна быть покрыта, прямоугольник не может накрывать закрашенную клеточку, прямоугольники не могут вылезать за пределы поля или перекрываться).

[이미지 2]

Конечно, Володе не всегда удавалось это сделать (те случаи, в которых ему удалось это сделать при N = 2 и M = 2 изображены на рисунке выше). Но в те немногие дни, когда это происходило, мама Миши очень радовалась за ребят и пекла им тортик. Сколько же тортиков пришлось ей испечь?

입력

В первой строке входных данных содержится два целых числа N и M — размеры поля (1 ⩽ N ⩽ 6, 1 ⩽ M ⩽ 500).

출력

Выведите единственное число — искомое количество тортиков по модулю 109 + 7.

예제

예제 1

입력
2 2
출력
6

예제 2

입력
2 3
출력
18
코드를 제출하려면 로그인하세요.