#arc133b. [arc133_b]Dividing Subsequence

[arc133_b]Dividing Subsequence

题目描述

给定两个排列 P=(P1,P2,cdots,PN)P=(P_1,P_2,\\cdots,P_N)Q=(Q1,Q2,cdots,QN)Q=(Q_1,Q_2,\\cdots,Q_N),它们都是 (1,2,cdots,N)(1,2,\\cdots,N) 的排列。

Snuke要从PPQQ中提取(不一定连续)的子序列。在这里,这些子序列必须满足以下条件:

  • PP 提取的子序列和从 QQ 提取的子序列的长度相等。设这个长度为 kk
  • a=(a1,a2,cdots,ak)a=(a_1,a_2,\\cdots,a_k)b=(b1,b2,cdots,bk)b=(b_1,b_2,\\cdots,b_k) 分别是从 PPQQ 中提取的子序列。对于每个 1leqileqk1 \\leq i \\leq k,有 bib_iaia_i 的倍数。

找到Snuke可以提取的子序列的最大可能长度。

约束条件

  • 1leqNleq2000001 \\leq N \\leq 200000
  • PP(1,2,cdots,N)(1,2,\\cdots,N) 的排列。
  • QQ(1,2,cdots,N)(1,2,\\cdots,N) 的排列。
  • 输入的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN P1P_1 P2P_2 cdots\\cdots PNP_N Q1Q_1 Q2Q_2 cdots\\cdots QNQ_N

输出

打印答案。


示例输入1

4
3 1 4 2
4 2 1 3

示例输出1

2

如果我们从 PP 中提取子序列 (1,2)(1,2),并从 QQ 中提取子序列 (4,2)(4,2),它们满足条件。无法提取长度为 33 或更长的子序列来满足条件,因此答案是 22


示例输入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