Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập troncantho2526

Vòng tròn

Dễ Số họcTổ hợp

  • 100 Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 0% Tỉ lệ AC
  • 0 Số AC

Một nhóm khách mời gồm \(m\) nam, \(n\) nữ cùng đi dự tiệc. Nhóm khách mời này được xếp ngồi vào một bàn tròn sao cho giữa hai khách nam có ít nhất một khách nữ ngồi ở giữa (nói cách khác, không có hai khách nam nào ngồi cạnh nhau). Các khách mời đều phân biệt với nhau.

Ví dụ: \(m = 2\) gồm \(m_1, m_2\); \(n = 2\) gồm \(n_1, n_2\), ta có hai cách xếp như sau (đọc theo chiều kim đồng hồ):

  • Cách \(A\): \(m_1, n_1, m_2, n_2\).

  • Cách \(B\): \(m_1, n_2, m_2, n_1\).

Hai cách xếp \(A\) và \(B\) được xem là như nhau nếu xoay vòng cách xếp \(A\) trùng với cách xếp \(B\) và ngược lại.

Yêu cầu: Hãy lập trình tìm số cách xếp sao cho giữa hai nam có ít nhất một nữ ngồi giữa.

Input

Dữ liệu vào gồm một dòng duy nhất ghi hai số nguyên dương \(m, n\) (\(m, n \le 10^6\)), mỗi số cách nhau một dấu cách.

Ràng buộc dữ liệu vào:

  • \(30\%\) số test tương ứng với số điểm có \(m = n\) và \(m, n \le 20\).

  • \(70\%\) số test còn lại không ràng buộc gì thêm.

Output

In ra một số là phần dư của kết quả tìm được khi chia cho \(10^9 + 7\).

Example 1

Input:

2 2

Output:

2

Example 2

Input:

3 3

Output:

12

Example 3

Input:

3 2

Output:

0

Note

Với \(m = n = 3\): các nữ xếp thành vòng có \(2! = 2\) cách, ba nam xếp vào ba khoảng giữa các nữ theo \(3! = 6\) cách, tổng cộng \(12\) cách.

Với \(m = 3, n = 2\): không đủ nữ để ngăn cách các nam nên không có cách xếp nào.

Bình luận

Chưa có bình luận nào.