\(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.
có một dãy số nguyên dươngHã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\) và \(m\) lần lượt là số phần tử của dãy \(A\) và \(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
fun fact: nếu gửi đường link của bài này vào zalo thì sẽ hiện ảnh MU :))
fake or real??