CANDYROAD

ThayHung

Con đường kẹo ngọt vừa được khai trương, là một điểm đến vô cùng hấp dẫn với những bạn trẻ có tâm hồn ăn uống. Có \(n\) địa điểm bán bánh kẹo nằm trên các số nhà liên tiếp \(1,2,3,…,n\) của Con đường kẹo ngọt. Bằng kiến thức của mình, \(H\) biết được tổng cộng \(m\) loại đồ ngọt khác nhau, cậu đánh số chúng từ \(1\) tới \(m\). Theo quảng cáo, cậu cũng biết mỗi địa điểm \(i\) chỉ chuyên bán một loại là \(a_i\).
\(H\) có ý định sẽ đi mua bánh kẹo ở một vài địa điểm liên tiếp nhau, từ số nhà \(l\) tới số nhà \(r\). Là một tín đồ hảo ngọt, \(H\) đánh giá một kế hoạch \((l,r)\) như sau:

  • Giả sử sau khi mua toàn bộ loại đồ ngọt từ địa điểm thứ \(l\) tới \(r\), có \(k\) loại đồ ngọt \(H\) chưa mua được, lần lượt là \(c_1, c_2, c_3, ..., c_k\).
  • Độ thiếu đường (hay độ thất vọng, chỉ số suy dinh dưỡng, ...) sẽ bằng với \(c_1 + c_2 + c_3, ..., + c_k\).

Để tính sweet-index của con đường này trước khi giới thiệu cho bạn bè, \(H\) cần tính tổng độ thiếu đường của toàn bộ các kế hoạch \((x,y)\) với \(1≤x≤y≤n\) (nói cách khác là đoạn các tiệm ngọt liên tiếp).

\(H\) thì đang mải mê ngắm nghía các loại bánh kẹo được bày bán tại các hàng quán. Nên việc tính toán này đành giao lại cho bạn :(.

Yêu cầu: cho trước \(n,m,a\). Hãy tính tổng độ thiếu đường theo mô tả ở trên.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\)\(m (1≤n≤2×10^5,1≤m≤10^9)\) lần lượt là số địa điểm và số loại bánh kẹo.
  • Dòng thứ hai chứa \(n\) số \(a_1, a_2, ..., a_n (1 ≤ a_i ≤ m)\) là loại đồ ngọt được bày bán ở các tiệm.
  • Lưu ý rằng có thể có các tiệm khác nhau cùng bán một loại, hoặc có loại không có tiệm nào bán.

Output

  • In ra tổng độ thiếu đường của mọi đoạn đường liên tiếp. Vì kết quả có thể rất lớn, hãy in ra sau khi chia lấy dư cho \(998244353\).

Example

Test 1

Input
3 4
1 2 3
Output
40

Example

Test 2

Input
8 4
2 3 1 2 4 3 1 3
Output
124

Example

Test 3

Input
8 1000000000
123456789 20040105 22071997 30081945 19051890 19450205 19800209 1969
Output
661167837

Giải thích vd 1:
Xét các đoạn tiệm liên tiếp:

  • [1,1]: không mua được các loại 2,3,4, độ thiếu đường là 9.
  • [1,2]: không mua được các loại 3,4, độ thiếu đường là 7.
  • [1,3]: không mua được loại 4, độ thiếu đường là 4.
  • [2,2]: không mua được các loại 1,3,4, độ thiếu đường là 8.
  • [2,3]: không mua được các loại 1,4, độ thiếu đường là 5.
  • [3,3]: không mua được các loại 1,2,4, độ thiếu đường là 7.

Vậy tổng độ thiếu đường là 40.

Ràng buộc:

  • Subtask 1 (30% số điểm): \(1≤n,m≤500\).
  • Subtask 2 (40% số điểm): \(1≤n,m≤5000\).
  • Subtask 3 (30% số điểm): không có rằng buộc gì thêm.
...Xem thêm

Dãy con tăng dài nhất

ThayHung

Cho một dãy gồm \(n\) số nguyên, bạn hãy lập trình tính toán độ dài của dãy con tăng dài nhất trong dãy đó (dãy con dài nhất mà mỗi phần tử đều lớn hơn phần tử liền trước nó).

Dãy con là một dãy có thể thu được từ dãy ban đầu bằng cách xóa bớt một số (có thể là không xóa) phần tử và giữ nguyên trật tự của các phần tử còn lại.


Input

Dòng đầu chứa số nguyên dương \(n\) - độ dài của dãy.

Dòng tiếp theo chứa \(n\) số nguyên \(x_1\), \(x_2\),..., \(x_n\) thể hiện các phần tử của dãy.


Output

Một số nguyên duy nhất là độ dài của dãy con tăng dài nhất.


Ví dụ

Input

8
7 3 5 3 6 2 9 8

Output

4

Ràng buộc

  • \(1 \leq n \leq 2.10^5\).
  • \(1 \leq x_i \leq 10^9\).
...Xem thêm

BFSMINS

ThayHung

Cho đồ thị vô hướng \(G = (V, E)\) gồm \(n\) đỉnh và \(m\) cạnh, các đỉnh được đánh số từ \(1\) tới \(n\) và các cạnh được đánh số từ \(1\) tới \(m\).

Độ dài của mỗi cạnh có giá trị là \(1\). Một đồ thị sẽ có \(1\) nút trung tâm \(s\).

Với mỗi đỉnh có thể tới được từ đỉnh \(s\), tính khoảng cách ngắn nhất từ đỉnh đó tới \(S\) và in ra các đỉnh theo thứ tự khoảng cách ngắn nhất tăng dần.

Lưu ý : Nếu \(2\) đỉnh có khoảng cách bằng nhau thì nhãn nào nhỏ hơn sẽ đứng trước.

Input

  • Dòng đầu gồm 3 số nguyên \(n, m, s\) \((n, m \leq 10^5, 1 \leq s \leq n)\)
  • \(m\) dòng sau mỗi dòng gồm hai số \(u\), \(v\) thể hiện hai đầu của một cạnh.

Output

  • In ra số dòng tương ứng với số đỉnh có thể tới được từ \(s\) theo thứ tự khoảng cách ngắn nhất tăng dần.
  • Trên mỗi dòng in ra nhãn của đỉnh đó và khoảng cách ngắn nhất của đỉnh đó tới \(s\).

Sample Input

7 6 1
1 2
2 3
3 4
4 5
5 6
1 3

Sample Output

1 0
2 1
3 1
4 2
5 3
6 4
...Xem thêm