Dãy Con Tăng Dài Nhất

Xem PDF



Tác giả:
Dạng bài
Điểm: 150 Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

ami có một dãy số nguyên dương \(A\) gồm \(n\) phần tử và một dãy số nguyên dương \(B\) gồm \(m\) phần tử. Ngoài ra, dãy \(A\) là một dãy không giảm (\(A_i \le A_{i+1}\) \(\forall\) \(1 \leq i < n\)). Trong một thao tác, các bạn có thể xoá một phần tử ở \(B\) và chèn nó vào một vị trí bất kì trong \(A\). Rõ ràng, các bạn không thể thực hiện thao tác trên quá \(m\) lần.

Hãy tìm cách thực hiện thao tác trên một cách tối ưu để \(A\) vẫn là một dãy tăng dần và độ dài của \(A\) là lớn nhất.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(n\)\(m\) lần lượt là số phần tử của dãy \(A\)\(B\).

  • Dòng tiếp theo chứa \(n\) số nguyên dương \(A_i\) biểu thị một phần tử của dãy \(A\).

  • Dòng cuối cùng chứa \(m\) số nguyên dương \(B_i\) biểu thị một phần tử của dãy \(B\).

Output

  • Hãy in ra độ dài lớn nhất của dãy \(A\) sau khi thực hiện thao tác một cách tối ưu.

Scoring

  • Trong toàn bộ dữ liệu có \(1 \leq a_i \leq 10^9\).

  • \(50\)% điểm tương ứng với \(1 \leq n, m \leq 10\).

  • \(50\)% điểm tương ứng với \(1 \leq n, m \leq 2*10^5\).

Example

Test 1

Input
3 2
1 2 3
1 4
Output
4
Note

Ở ví dụ 1, ta có thể chèn số 4 vào sau phần tử cuối cùng của \(A\) để nhận được dãy [1, 2, 3, 4]. Do đó kết quả là 4.

Test 2

Input
2 2
1 5
4 3
Output
4
Note

Ở ví dụ 2, ta có thể chèn số 4 vào giữa số 1 và 5 của dãy \(A\) để nhận được dãy [1, 4, 5]. Sau đó tiếp tục chèn số 3 vào giữa hai số 1 và 4 để nhận được dãy [1, 3, 4, 5]. Do đó kết quả là 4.


Bình luận