#CF2045I. 可微波子序列

可微波子序列

I. 可微波子序列
每个测试点时间限制:11
每个测试点内存限制:10241024 兆字节

给定一个包含 NN 个整数的数组:[A1,A2,,AN][A_1, A_2, \dots, A_N]

子序列可以通过删除数组中零个或多个元素(不改变剩余元素的顺序)得到。例如,[2,1,2][2,1,2][3,3][3,3][1][1][3,2,1,3,2][3,2,1,3,2] 都是数组 [3,2,1,3,2][3,2,1,3,2] 的子序列,而 [1,2,3][1,2,3] 不是。

如果一个子序列至多包含两种不同的数值,且每个元素与相邻元素不同,则称该子序列是可微波的。例如,[2,1,2][2,1,2][3,2,3,2][3,2,3,2][1][1] 是可微波的,而 [3,3][3,3][3,2,1,3,2][3,2,1,3,2] 不是。

定义函数 f(x,y)f(x,y) 为数组 AA最长可微波子序列的长度,且该子序列中的每个元素只能是 xxyy
求对于所有 1x<yM1 \le x < y \le Mf(x,y)f(x,y) 之和。

输入
第一行包含两个整数 NNMM1N,M3000001 \le N, M \le 300000)。
第二行包含 NN 个整数 AiA_i1AiM1 \le A_i \le M)。

输出
输出一个整数,表示所有 f(x,y)f(x,y) 的总和。

样例

输入

5 4
3 2 1 3 2

输出

13

输入

3 3
1 1 1

输出

2

样例解释

对于样例 #1:

  • f(1,2)=3f(1,2) = 3,子序列 [2,1,2][2,1,2](删除 A1A_1A4A_4)。
  • f(1,3)=3f(1,3) = 3,子序列 [3,1,3][3,1,3](删除 A2A_2A5A_5)。
  • f(2,3)=4f(2,3) = 4,子序列 [3,2,3,2][3,2,3,2](删除 A3A_3)。
  • f(1,4)f(1,4)f(2,4)f(2,4)f(3,4)f(3,4) 均为 11

对于样例 #2:
f(1,2)f(1,2)f(1,3)f(1,3) 均为 11f(2,3)=0f(2,3) = 0