题目描述
给定两个排列 P=(P1,P2,cdots,PN) 和 Q=(Q1,Q2,cdots,QN),它们都是 (1,2,cdots,N) 的排列。
Snuke要从P和Q中提取(不一定连续)的子序列。在这里,这些子序列必须满足以下条件:
- 从 P 提取的子序列和从 Q 提取的子序列的长度相等。设这个长度为 k。
- 设 a=(a1,a2,cdots,ak) 和 b=(b1,b2,cdots,bk) 分别是从 P 和 Q 中提取的子序列。对于每个 1leqileqk,有 bi 是 ai 的倍数。
找到Snuke可以提取的子序列的最大可能长度。
约束条件
- 1leqNleq200000
- P 是 (1,2,cdots,N) 的排列。
- Q 是 (1,2,cdots,N) 的排列。
- 输入的所有值都是整数。
输入
输入以以下格式从标准输入给出:
N
P1 P2 cdots PN
Q1 Q2 cdots QN
输出
打印答案。
示例输入1
4
3 1 4 2
4 2 1 3
示例输出1
2
如果我们从 P 中提取子序列 (1,2),并从 Q 中提取子序列 (4,2),它们满足条件。无法提取长度为 3 或更长的子序列来满足条件,因此答案是 2。
示例输入2
5
1 2 3 4 5
5 4 3 2 1
示例输出2
3
示例输入3
10
4 3 1 10 9 2 8 6 5 7
9 6 5 4 2 3 8 10 1 7
示例输出3
6