AT_abc262_g [ABC262G] LIS with Stack

Description

[problemUrl]: https://atcoder.jp/contests/abc262/tasks/abc262_g 空の列 $ X $ と空のスタック $ S $ があります。また、項数が $ N $ の整数列 $ A=(a_1,\ldots,a_N) $ が与えられます。 高橋君は $ i=1,\ldots,N $ の順に、以下の $ 2 $ つの操作のうち一方を行います。 - $ A $ の先頭の整数 $ a_i $ を $ S $ の先頭に移動させる。 - $ A $ の先頭の整数 $ a_i $ を捨てる。 また、高橋君は $ S $ が空でない任意のタイミングで次の操作をすることが出来ます。 - $ S $ の先頭の整数を $ X $ の末尾に移動させる。 最終的な $ X $ に対し、スコアを以下のように定めます。 - $ X $ が広義単調増加な場合、すなわち $ X=(x_1,\ldots,x_{|X|}) $ とした時に任意の整数 $ i(1\ \leq\ i\ \lt\ |X|) $ に対して $ x_i\ \leq\ x_{i+1} $ が成り立つ場合、スコアは $ |X| $ である。($ |X| $ は $ X $ の項数) - $ X $ が広義単調増加でない場合、スコアは $ 0 $ である。 スコアの最大値を求めてください。

Input Format

N/A

Output Format

N/A

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 50 $ - $ 1\ \leq\ a_i\ \leq\ 50 $ - 入力はすべて整数 ### Sample Explanation 1 以下のように操作をすると最終的な $ X $ が $ (1,1,2,3,4) $ となり、スコアが $ 5 $ になります。 - $ a_1=1 $ を $ S $ の先頭に移動させる。 - $ S $ の先頭の $ 1 $ を $ X $ の末尾に移動させる。 - $ a_2=2 $ を $ S $ の先頭に移動させる。 - $ a_3=3 $ を捨てる。 - $ a_4=4 $ を $ S $ の先頭に移動させる。 - $ a_5=1 $ を $ S $ の先頭に移動させる。 - $ S $ の先頭の $ 1 $ を $ X $ の末尾に移動させる。 - $ a_6=2 $ を $ S $ の先頭に移動させる。 - $ S $ の先頭の $ 2 $ を $ X $ の末尾に移動させる。 - $ a_7=3 $ を $ S $ の先頭に移動させる。 - $ S $ の先頭の $ 3 $ を $ X $ の末尾に移動させる。 - $ S $ の先頭の $ 4 $ を $ X $ の末尾に移動させる。 また、スコアを $ 6 $ 以上にすることは出来ません。よってスコアの最大値は $ 5 $ です。