Hải và Nam là đôi bạn thân và đều rất đam mê môn Tin học. Hôm nay Hải nghĩ ra một bài toán mới và đưa ra thách đố Nam giải. Bài toán như sau:
Hải cho Nam hai dãy ~a_1, a_2, a_3, ..., a_n~ và ~b_1, b_2, ..., b_m~ lần lượt gồm ~n~ và ~m~ số nguyên. Hải yêu cầu Nam lấy một đoạn nào đó các phần tử đầu của dãy ~a~: ~a_1, a_2, ..., a_i~ và ghép với một đoạn cuối nào đó của dãy ~b~: ~b_j,b_{j+1}, ..., b_m~ để nhận được một dãy không giảm:
~a_1 \le a_2 \le ... \le a_i \le b_j \le b_{j+1} \le ... \le b_m~
với số phần tử là lớn nhất.
Yêu cầu: Cho hai dãy ~a~ và ~b~ gồm ~n~ và ~m~ số nguyên, hãy cho biết số phần tử nhiều nhất của dãy mà Nam có thể ghép được.
Dữ liệu
Vào từ file văn bản MARBLE.INP
gồm:
- Dòng đầu chứa số nguyên dương ~n~ ~(1 \le n \le 10^5)~.
- Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, ..., a_n~ mỗi số có giá trị tuyệt đối không quá ~10^9~.
- Dòng thứ ba số nguyên dương ~m~ ~(1 \le m \le 10^5)~.
- Dòng cuối chứa ~m~ số nguyên ~b_1, b_2, ..., b_m~ mỗi số có giá trị tuyệt đối không quá ~10^9~.
Kết quả
Ghi ra file văn bản MARBLE.OUT
một số nguyên duy nhất là số phần tử nhiều nhất có thể của dãy mà Nam nhận được.
Ví dụ
Dữ liệu
3
1 4 9
4
5 2 4 5
Kết quả
4
Giải thích
Nam có thể ghép ~2~ phần tử đẩu của dãy ~a~ với hai phần tử cuối của dãy ~b~ để được dãy không giảm gồm ~4~ phần tử: ~1, 4, 4, 5~ hoặc ghép phần tử đầu của dãy ~a~ với ~3~ phần tử cuối của dãy ~b~ để nhận được dãy không giảm cũng gồm ~4~ phần tử: ~1, 2, 4, 5~.
Ràng buộc
- ~50\%~ số điểm của bài tương ứng với các test có ~n,m \le 5000~.
- ~50\%~ số điểm còn lại không có ràng buộc nào thêm.
Comments
sibidi