若一個陣列先嚴格遞增,再嚴格遞減,則稱其為「山形陣列」(Mountainous)。請注意,因此山形陣列的長度必須至少為 3。
「子陣列」(Subarray)定義為從原始陣列中刪除某些前綴和後綴(可能為空)後所得到的陣列。
若一個陣列或子陣列正向讀取與反向讀取相同,則稱其為「迴文」(Palindrome)。
給定一個整數陣列,請計算同時為「山形陣列」與「迴文」的最長子陣列長度。
輸入格式
第一行包含一個整數 $n$ ($1 \le n \le 10^6$),代表陣列中整數的數量。 接下來的 $n$ 行,每行包含一個整數 $x$ ($1 \le x \le 10^9$)。這些數值依序構成了該陣列。
輸出格式
輸出一個整數,代表同時為「山形陣列」與「迴文」的最長子陣列長度;若不存在此類陣列,則輸出 $-1$。
範例
範例 1
輸入
8 2 1 2 3 2 1 7 8
輸出
5
範例 2
輸入
5 2 5 8 7 2
輸出
-1