#arc133b. [arc133_b]Dividing Subsequence

[arc133_b]Dividing Subsequence

問題文

(1,2,cdots,N)(1,2,\\cdots,N) の順列 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) が与えられます.

すぬけくんは,PPQQ から(連続するとは限らない)部分列を取り出そうとしています. ここで,取り出した部分列は以下の条件を満たす必要があります.

  • PP から取り出した部分列と QQ から取り出した部分列の長さは等しい.以下,この長さを kk とおく.
  • PP から取り出した部分列を a=(a1,a2,cdots,ak)a=(a_1,a_2,\\cdots,a_k)QQ から取り出した部分列を b=(b1,b2,cdots,bk)b=(b_1,b_2,\\cdots,b_k) とおく. このとき,各 1leqileqk1 \\leq i \\leq k について,bib_iaia_i の倍数である.

すぬけ君が取り出せる部分列の長さの最大値を求めて下さい.

制約

  • 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