#joi2019hob. [joi2019ho_b]展覧会 (Exhibition)

[joi2019ho_b]展覧会 (Exhibition)

将以下文本翻译成中文,要求显示为markdown格式,不要渲染:

你计划举办一次绘画展览。在展览中,你打算把一些画放在画框里,从左到右排列展示。

有N幅候选画可以展示,每幅画都有一个从1到N的编号。第i幅画(1≤i≤N)的大小为Si,价值为Vi。

此外,还有M个画框可用,每个画框都有一个从1到M的编号。第j个画框(1≤j≤M)的大小为Cj。画框j只能放入大小不超过Cj的画。每个画框最多只能放入一幅画。

所有展示的画都必须放在画框中。为了美观,在以下条件下,展示的画必须满足:

  • 对于任何相邻的两幅画,右边画所在的画框的大小必须大于等于左边画所在的画框的大小。
  • 对于任何相邻的两幅画,右边画的价值必须大于等于左边画的价值。

你希望尽可能展示更多的画。

给定候选画的数量、画框的数量以及它们的大小和价值,请编写程序来计算能够展示的画的最大数量。


输入

输入通过标准输入给出,具体格式如下:

N M S1 V1 ⋮ SN VN C1 ⋮ CM

输出

请将展览中展示的画的最大数量以一行输出到标准输出。


约束条件

  • 1≤N≤100,000。
  • 1≤M≤100,000。
  • 1≤Si≤1,000,000,000(1≤i≤N)。
  • 1≤Vi≤1,000,000,000(1≤i≤N)。
  • 1≤Cj≤1,000,000,000(1≤j≤M)。

子任务

  1. (10分)N≤10,M≤10。
  2. (40分)N≤1,000,M≤1,000。
  3. (50分)无额外约束。

输入示例1

3 4
10 20
5 1
3 5
4
6
10
4

输出示例1

2

在此示例中,你可以按照顺序将(画2,画框2)和(画1,画框3)排列起来,以展示两幅画。由于不能展示三幅以上的画,因此输出2。这里,(画i,画框j)表示画框j里的画i。


输入示例2

3 2
1 2
1 2
1 2
1
1

输出示例2

2

输入示例3

4 2
28 1
8 8
6 10
16 9
4
3

输出示例3

0

输入示例4

8 8
508917604 35617051
501958939 840246141
485338402 32896484
957730250 357542366
904165504 137209882
684085683 775621730
552953629 20004459
125090903 607302990
433255278
979756183
28423637
856448848
276518245
314201319
666094038
149542543

输出示例4

3