#878. TRIMINOS

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Triomino là hình gồm ba ô vuông có cạnh chung. Có hai dạng cơ bản:

Nếu tính cả hướng thì có 6 dạng:

Với n,m bất kì mà n\times m chia hết cho 3 thì có thể lát lưới n\times m bằng triomino. Nếu chúng ta phân biệt trimino có thể thu được bằng cách quay hoặc lấy đối xứng từ các trimino khác thì tổng cộng có 41 cách lát lưới kích thước 2\times 9 .

Yêu cầu: Cho biết kích thước lưới m \times n , hãy tính số cách lát lưới m\times n bởi các trimino.

Dữ liệu vào:

  • Hai số nguyên m n . Trong đó 1 ≤ m, n ≤ 40, min(m, n) ≤ 9 .

Dữ liệu ra:

  • Một số nguyên là số cách lát lưới m \times n bởi các trimino (lấy theo modulo (10^9+7) .

Ví dụ:

Dữ liệu vào:

2 9

Dữ liệu ra:

4 1

Dữ liệu vào:

1 3

Dữ liệu ra:

1