#P20250410. 修改数列

修改数列

题目描述

给你一个长度为 nn 的整数数列 a1,a2,,ana_1, a_2, \ldots, a_n

数列中的每个元素都在 11xx 范围内。这也就是说,对于任意 1in1 \le i \le n,均有 1aix1 \le a_i \le x

你可以对这个数列进行任意次如下操作:

选择一个不包含整数 kk 的区间 [l,r][l, r],并将这个区间里的每个元素的数值都更新为 kk

其中:1lrn1 \le l \le r \le n1kx1 \le k \le x

也就是说,首先你要选择的区间 [l,r][l, r] 内不能存在数值为 kk 的元素,即:对于任意 lirl \le i \le r,均满足 aika_i \neq k;然后,你需要将满足 lirl \le i \le raia_i 都更新为 kkkk 只能是 11xx 范围内的某一个整数。

问:最少需要几次操作能使数列 aa 中的所有数的数值相同(即 a1=a2==ana_1 = a_2 = \ldots = a_n)?

输入格式

第一行,两个整数 nnxx,以空格分隔(1xn1001 \le x \le n \le 100)。

第二行,nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n,两两之间以一个空格分隔(1aix1 \le a_i \le x)。

输出格式

输出一个整数,表示使数列 aa 所有数的数值相同所需的最少操作次数。

样例

3 2
1 2 1
1
6 3
1 2 3 1 2 3
2
12 3
3 1 3 1 2 1 1 2 3 1 1 3
2

说明/提示

样例解释

样例 1 的一种最优解:将区间 [2,2][2, 2] 更新为 11

样例 2 的一种最优解:先将区间 [1,2][1, 2] 更新为 33,再将区间 [4,5][4, 5] 更新为 33

样例 3 的一种最优解:先将区间 [4,8][4, 8] 更新为 33,再将区间 [1,12][1, 12] 更新为 22

数据规模与约定

  • 对于 50%50\% 的数据,n10n \le 10
  • 对于 100%100\% 的数据,1xn1001 \le x \le n \le 1001aix1 \le a_i \le x