Giới hạn thời gian: 1.0s / Giới hạn bộ nhớ: 256M

Điểm: 7

Cho một bảng ~n~ hàng, ~m~ cột. Các cột được đánh số từ trên xuống dưới, các hàng được đánh số từ trái sang phải, giao giữa hàng ~i~ và cột ~j~ là ô ~(i, j)~. Một số ô có thể được cắm cờ, mỗi ô chỉ chứa tối đa một cờ, mỗi cờ có thể quay được theo 4 hướng tuân theo quy tắc sau:

  • Nếu hai ô ~(i_1, j)~ và ~(i_2, j)~ (~1 \leq i_1 < i_2 \leq n; 1 \leq j \leq m~) hoặc hai ô ~(i, j_1)~ và ~(i, j_2)~ (~1\leq i \leq n; 1 \leq j_1 < j_2 \leq m~) đều đã được cắm cờ thì hướng của chúng phải hướng vào nhau.

  • Nếu ô ~(i, j)~ có cờ và không tồn tại một ô nào khác cùng hàng hoặc cùng cột có cờ thì cờ tại đó có thể cắm theo bất kỳ hướng nào.

Nhiệm vụ của bạn là đếm xem có bao nhiêu cách đặt cờ sao cho ít nhất một cờ được đặt trong bảng. Biết rằng hai cách cắm được gọi là khác nhau khi trạng thái cắm cờ là khác nhau (tồn tại ô mà cách cắm này có cờ mà cách cắm kia không có hoặc là vị trí cắm cờ tại một ô giữa hai cách cắm khác hướng nhau). Lưu ý là số lượng cờ được cắm là không giới hạn, miễn là tuân theo quy định cắm.

Input

Dữ liệu vào từ file văn bản flagger.inp:

Gồm một dòng duy nhất chứa hai số nguyên dương ~n~ và ~m~ (~1\leq n, m \leq 5000~).

Output

In ra file văn bản flagger.out một số nguyên dương là số cách cắm cờ khác nhau, lấy phần dư khi chia cho ~10^9 + 7~.

Scoring

Subtask Điểm Giới hạn
1 ~25\%~ ~n, m \leq 10~
2 ~25\%~ ~n, m \leq 500~
3 ~50\%~ Không có giới hạn gì thêm.

Sample Input 1

1 4

Sample Output 1

22

Sample Input 2

2 2

Sample Output 2

52

Notes

Ở ví dụ ~1~, ta có ~4 \times 4=16~ cách đặt 1 cờ và có ~C_4^2= 6~ cách đặt ~2~ cờ. Đáp án sẽ là ~16+6=22~.

Ở ví dụ ~2~, ta có ~4 \times 4=16~ cách đặt 1 cờ, ~4 \times 1= 4~ cách đặt ~2~ cờ cùng cột hoặc hàng và ~2 * 4^2= 32~ cách đặt ~2~ cờ khác hàng hoặc cột. Đáp án sẽ là ~16 + 4 + 32=52~.


Giới hạn thời gian: 2.0s / Giới hạn bộ nhớ: 1G

Điểm: 7

Chuẩn bị đến dịp lễ Giáng sinh, Hưng muốn ngôi nhà thêm đẹp mắt và đặc biệt. Cậu đã quyết định mua một số bức tranh dán tường để trang trí ngôi nhà của mình. Bề mặt của bức tường có thể được xem là một lưới ô vuông gồm ~N~ hàng và ~N~ cột.

Các dòng được đánh số từ ~1~ đến ~N~ từ trên xuống dưới, các cột được đánh số từ ~1~ đến ~N~ từ trái sang phải. Ô nằm trên dòng ~i~ và cột ~j~ được gọi là ô (~i, j~).

Hưng đã mua và dán ~M~ bức tranh dán lên tường, bức tranh thứ ~i~ được miêu tả bởi ~4~ số nguyên ~x_1, x_2, y_1, y_2~ cho biết bức tranh bao phủ toàn bộ các ô của lưới ô vuông con có góc trái trên là ô (~x_1, y_1~) và góc phải dưới là ô (~x_2, y_2~).

Sau khi dán hết các bức tranh, Hưng nhận thấy rằng vị trí các bức tranh rất bừa bộn. Để làm giảm sự bừa bộn, Hưng muốn tìm cách bỏ đi đúng hai bức tranh sao cho số ô không được phủ bởi bất cứ bức tranh nào là lớn nhất có thể.

Vì đang tập trung ôn VOI nên Hưng khá bận, bạn hãy giúp Hưng làm điều này nhé.

Input

Dữ liệu vào từ file văn bản christmas.inp.

Dòng đầu tiên gồm ~2~ số nguyên ~M~ và ~N~ (~3 \le M \le 200000~, ~1 \le N \le 5000~) — là số bức tranh và kích thước của lưới ô vuông.

~M~ dòng tiếp theo, dòng thứ ~i~ gồm ~4~ số nguyên ~x_1, x_2, y_1, y_2~ (~1 \le x_1 \le x_2 \le N~, ~1 \le y_1 \le y_2 \le N~) – mô tả bức tranh thứ ~i~.

Output

In ra file văn bản christmas.out một số duy nhất là số ô không bị phủ lớn nhất có thể sau khi bỏ đi ~2~ bức tranh.

Scoring

Subtask Điểm Giới hạn
1 ~20~ ~M, N \le 80~
2 ~20~ ~M \le 2000~
3 ~20~ ~M \le 20000, N \le 100~
4 ~40~ Không có ràng buộc gì thêm

Sample Input 1

3 5
1 5 1 5
1 4 2 5
2 3 3 4

Sample Output 1

21

Sample Input 2

4 9
1 5 1 4
3 7 2 5
4 8 2 4
4 8 1 6

Sample Output 2

58

Notes

  • Trong test ví dụ đầu tiên, sau khi chọn bỏ đi bức tranh thứ nhất và thứ hai thì số ô không bị phủ bởi bất kỳ bức tranh nào là ~21~.

  • Trong test ví dụ thứ hai, sau khi chọn bỏ đi bức tranh thứ nhất và thứ ~4~ thì số ô không bị phủ là ~58~.


Giới hạn thời gian: 2.0s / Giới hạn bộ nhớ: 256M

Điểm: 6

Trọng đang làm phụ bếp tại tiệm bánh Bedao. Để làm được một chiếc bánh, Trọng phải sử dụng một số bột ~N~ để làm thành một chiếc bánh có nhiều tầng sao cho tổng số bột của các tầng bằng ~N~.

Bếp trưởng cho biết chiếc bánh sẽ có một giá trị hạnh phúc ~G(A)~ được tính bằng tích số bột của các tầng. Tức là nếu Trọng chia ~N~ bột bánh thành ~n~ tầng có giá trị số bột là một dãy ~A~, giá trị hạnh phúc sẽ là hàm tích ~\displaystyle G(A) = \prod_{i=1}^{n} A_i~ với điều kiện tổng số bột bánh ~\displaystyle F(A) = \sum_{i=1}^{n} A_i~ là ~N~.

Ở sự kiện Bedao OI lần này, Trọng được giao trách nhiệm phải làm ra các loại bánh có tổng bột nằm trong vùng kiểm định cho phép ~N \in [L, R]~.

Do muốn gây ấn tượng với bếp trưởng, Trọng quyết định sẽ làm ra tất cả các loại bánh có thể sao cho mỗi chiếc bánh sử dụng đúng theo yêu cầu kiểm định, sao cho không có bánh nào giống nhau. Ngoài ra Trọng còn đề ra tiêu chí thẩm mỹ của bánh, sao cho số bột của mỗi tầng trong bánh phải chia hết cho ít nhất một phần tử trong tập hợp ~K~.

Ví dụ: Với ~L = 7, R = 9, K = \{2,3\}~, Trọng có thể xây thành các loại bánh như ~(2,2,3)~ hay ~(6,3)~ với giá trị hạnh phúc lần lượt là ~2 \times 2 \times 3 = 12~ và ~6 \times 3 = 18~.

Trọng muốn biết là tổng giá trị hạnh phúc của tất cả các loại bánh có thể làm được. Bạn hãy giúp Trọng nhé!

Do giá trị có thể rất lớn nên đáp án trả về dưới dạng chia lấy phần dư cho ~10^9 + 7~. Hai cách xây bánh ~A^{\prime}~ và ~A^{\prime\prime}~ được coi là riêng biệt nếu như ~|A^{\prime}| \neq |A^{\prime\prime}|~ hoặc tồn tại một vị trí ~i~ sao cho ~A^{\prime}_i \neq A^{\prime\prime}_i~.

Ví dụ: ~(1, 2, 3)~ khác với ~(2, 3, 4)~, và ~(1, 1, 2)~ khác với ~(1, 2, 1)~.

Input

Dữ liệu vào từ file văn bản a.inp:

  • Dòng đầu tiên chứa hai số nguyên dương ~L~ và ~R~ ~(1 \leq L \leq R \leq 10^{18})~.

  • Dòng thứ hai chứa số nguyên dương ~m~ thể hiện số lượng phần tử trong tập hợp ~K~.

  • Dòng thứ ba chứa ~m~ số nguyên dương phân biệt ~K_i~ ~(LCM(K_1, \ldots ,K_m) \leq 80)~.

Output

In ra file văn bản a.out một số nguyên duy nhất là tổng giá trị hạnh phúc của tất cả loại bánh có thể làm được chia lấy phần từ cho ~10^9 + 7~.

Scoring

Subtask Điểm Giới hạn
1 ~20\%~ ~K = \{1\}, L \leq R \leq 10^6~
2 ~20\%~ ~L \leq R \leq 10^6~
3 ~30\%~ ~K = \{1\}, L \leq R \leq 10^{18}~
4 ~30\%~ Không có giới hạn gì thêm.

Sample Input 1

3 4
2
2 3

Sample Output 1

11

Sample Input 2

2 3
1
1

Sample Output 2

11

Notes

Ở ví dụ ~1~, ta có những dãy thoả mãn là ~(2,2),~ ~(3)~ và ~(4)~, tổng giá trị hạnh phúc là ~2\times 2 + 3 + 4 = 11~.

Ở ví dụ ~2~, ta có những dãy thoả mãn là ~(1,1),~ ~(1,1,1),~ ~(1,2),~ ~(2),~ ~(2,1),~ và ~(3)~, tổng giá trị hạnh phúc là ~1 + 1\times 1 + 1\times 2 + 2\times 1 + 2 + 3 =11~.