AT_arc133_b [ARC133B] Dividing Subsequence

Description

[problemUrl]: https://atcoder.jp/contests/arc133/tasks/arc133_b $ (1,2,\cdots,N) $ の順列 $ P=(P_1,P_2,\cdots,P_N) $ および $ Q=(Q_1,Q_2,\cdots,Q_N) $ が与えられます. すぬけくんは,$ P $ と $ Q $ から(連続するとは限らない)部分列を取り出そうとしています. ここで,取り出した部分列は以下の条件を満たす必要があります. - $ P $ から取り出した部分列と $ Q $ から取り出した部分列の長さは等しい.以下,この長さを $ k $ とおく. - $ P $ から取り出した部分列を $ a=(a_1,a_2,\cdots,a_k) $,$ Q $ から取り出した部分列を $ b=(b_1,b_2,\cdots,b_k) $ とおく. このとき,各 $ 1\ \leq\ i\ \leq\ k $ について,$ b_i $ は $ a_i $ の倍数である. すぬけ君が取り出せる部分列の長さの最大値を求めて下さい.

Input Format

入力は以下の形式で標準入力から与えられる. > $ N $ $ P_1 $ $ P_2 $ $ \cdots $ $ P_N $ $ Q_1 $ $ Q_2 $ $ \cdots $ $ Q_N $

Output Format

答えを出力せよ.

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 200000 $ - $ P $ は $ (1,2,\cdots,N) $ の順列である - $ Q $ は $ (1,2,\cdots,N) $ の順列である - 入力される値はすべて整数である ### Sample Explanation 1 $ P $ から部分列 $ (1,2) $ を,$ Q $ から部分列 $ (4,2) $ を取り出すと,これは条件を満たします. 長さ $ 3 $ 以上の部分列を条件を満たすように取ることはできないため,答えは $ 2 $ です.