Số cách chọn

Cho dãy gồm \(n\) số nguyên dương \(a_1, a_2, \ldots, a_n\). Hiệp đố Đức Anh tính số cách chọn ra một dãy con (không cần liên tiếp) có tổng bằng \(k\) trong dãy trên, Đức Anh khôn nên giải trong đúng \(36\) giây. Hiệp lại tăng độ khó, Hiệp hỏi \(q\) truy vấn \(l, r, k\) với ý nghĩa tính số cách chọn một dãy con có tổng bằng \(k\) trong dãy \(a_l, a_{l + 1}, \ldots, a_r\). Đức Anh gà nên nhờ bạn giúp, hãy giúp anh ấy.

Input

  • Dòng đầu là hai số nguyên dương \(n\)\(q\) \((1 \le n, q \le 10^5)\).
  • Dòng thứ hai là \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) \((0 \le a_i \le 100)\).
  • \(q\) dòng tiếp theo, mỗi dòng là ba số nguyên dương \(l, r, k\) thể hiện một truy vấn \((1 \le l \le r \le n, k \le 100)\).

Output

  • \(q\) dòng là đáp án cho \(q\) truy vấn, lấy dư cho \(10^9 + 7\).

Example

Test

Input
5 3
1 9 8 1 2
1 5 2
1 4 10
1 5 3
Output
2
3
2
...Xem thêm

Tráo đổi hàng cột

Cho một mảng 2 chiều (ma trận) \(A\) gồm \(n\) dòng và \(m\) cột. Có \(q\) truy vấn, mỗi truy vấn thuộc một trong 2 dạng sau:

  • 1 i j: Đổi chỗ hàng \(i\) và hàng \(j\).
  • 2 i j: Đổi chỗ cột \(i\) và cột \(j\).

In ra ma trận \(A\) sau khi thực hiện \(q\) thao tác. Các chỉ số hàng và cột được đánh số từ \(1\).

Input

  • Dòng đầu tiên chứa 3 số nguyên \(n, m, q\) (\(1 \le n, m, q \le 100\)).
  • \(n\) dòng tiếp theo, mỗi dòng chứa \(m\) số nguyên, thể hiện ma trận \(A\) (\(|A_{i,j}| \le 100\)).
  • \(q\) dòng tiếp theo, mỗi dòng là một truy vấn có dạng 1 i j (đổi hàng) hoặc 2 i j (đổi cột). Các chỉ số \(i, j\) là hợp lệ.

Output

  • In ra \(n\) dòng, mỗi dòng chứa \(m\) số nguyên, thể hiện ma trận \(A\) sau khi thực hiện \(q\) truy vấn. Các số trên cùng một dòng cách nhau bởi dấu cách.

Examples

Test 1

Input
3 3 1
1 2 3
4 5 6
7 8 9
1 1 3
Output
7 8 9
4 5 6
1 2 3
Explanation

Ma trận ban đầu:

1 2 3
4 5 6
7 8 9

Truy vấn 1 1 3 yêu cầu đổi chỗ hàng 1 và hàng 3.
Ma trận kết quả là:
7 8 9
4 5 6
1 2 3

Test 2

Input
2 3 2
1 2 3
4 5 6
2 1 3
1 1 2
Output
6 5 4
3 2 1
Explanation

Ma trận ban đầu:

1 2 3
4 5 6

Thực hiện truy vấn 2 1 3 (đổi cột 1 và cột 3):
3 2 1
6 5 4

Thực hiện tiếp truy vấn 1 1 2 (đổi hàng 1 và hàng 2):
6 5 4
3 2 1

Đây là ma trận cuối cùng.

...Xem thêm

Xoay bảng

Cho một bảng (ma trận) \(A\) kích thước \(n \times m\) (gồm \(n\) hàng và \(m\) cột) chứa các phần tử nguyên. Hãy xoay bảng này \(90\) độ theo chiều kim đồng hồ.

Lưu ý: Sau khi xoay, bảng mới sẽ có kích thước \(m \times n\) (\(m\) hàng và \(n\) cột).

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\)\(m\) (\(1 \le n, m \le 50\)).
  • \(n\) dòng tiếp theo, mỗi dòng chứa \(m\) số nguyên \(A_{i,j}\) (\(1 \le A_{i,j} \le 100\)), là các phần tử của bảng.

Output

  • In ra \(m\) dòng, mỗi dòng chứa \(n\) số nguyên, là bảng đã được xoay. Các số trên cùng một dòng cách nhau bởi dấu cách.

Examples

Test 1

Input
3 2
1 2
3 4
5 6
Output
5 3 1
6 4 2
Explanation

Bảng ban đầu là \(3 \times 2\).
Sau khi xoay 90 độ theo chiều kim đồng hồ, bảng mới có kích thước \(2 \times 3\).

  • Hàng đầu tiên (1, 2) trở thành cột cuối cùng của bảng mới.
  • Hàng thứ hai (3, 4) trở thành cột thứ hai.
  • Hàng cuối cùng (5, 6) trở thành cột đầu tiên.

Test 2

Input
2 4
1 2 3 4
5 6 7 8
Output
5 1
6 2
7 3
8 4
Explanation

Bảng ban đầu là \(2 \times 4\).
Sau khi xoay, bảng mới có kích thước \(4 \times 2\).

  • Hàng (1, 2, 3, 4) trở thành cột cuối cùng (cột 2 của bảng mới).
  • Hàng (5, 6, 7, 😎 trở thành cột đầu tiên (cột 1 của bảng mới).
...Xem thêm

Số lớn thứ ba

Cho một mảng \(A\) gồm \(N\) số nguyên.

Hãy tìm giá trị lớn thứ ba trong mảng.

Input

  • Dòng đầu tiên chứa số nguyên \(N\) (\(3 \le N \le 5.10^6\)), là số lượng phần tử của mảng.
  • Dòng thứ hai chứa \(N\) số nguyên \(A_1, A_2, \dots, A_N\) (\(-10^9 \le A_i \le 10^9\)), là các phần tử của mảng.

Output

  • In ra một số nguyên duy nhất là giá trị lớn thứ ba tìm được.

Examples

Test 1

Input
5
1 5 3 2 4
Output
3
...Xem thêm