CF1082E Increasing Frequency

Description

You are given array $ a $ of length $ n $ . You can choose one segment $ [l, r] $ ( $ 1 \le l \le r \le n $ ) and integer value $ k $ (positive, negative or even zero) and change $ a_l, a_{l + 1}, \dots, a_r $ by $ k $ each (i.e. $ a_i := a_i + k $ for each $ l \le i \le r $ ). What is the maximum possible number of elements with value $ c $ that can be obtained after one such operation?

Input Format

The first line contains two integers $ n $ and $ c $ ( $ 1 \le n \le 5 \cdot 10^5 $ , $ 1 \le c \le 5 \cdot 10^5 $ ) — the length of array and the value $ c $ to obtain. The second line contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 1 \le a_i \le 5 \cdot 10^5 $ ) — array $ a $ .

Output Format

Print one integer — the maximum possible number of elements with value $ c $ which can be obtained after performing operation described above.

Explanation/Hint

In the first example we can choose any segment and $ k = 0 $ . The array will stay same. In the second example we can choose segment $ [1, 3] $ and $ k = -4 $ . The array will become $ [2, -2, 2] $ .