#abc282e. [abc282_e]Choose Two and Eat One

[abc282_e]Choose Two and Eat One

题目描述

一个盒子中装有 NN 个球,每个球上写着一个介于 11M1M-1 之间的整数。对于 i=1,2,,Ni=1,2,\ldots,N,第 ii 个球上写着整数 AiA_i

当盒子中剩下两个或更多的球时,高桥会重复以下操作:

  • 首先,任意选择两个球。
  • 然后,获得得分为 xy+yxx^y + y^xMM 求余后的余数,其中 xxyy 分别是两个球上的整数。
  • 最后,随机选择其中一个球吃掉,并将另一个球放回盒子中。

输出高桥可能获得的最大总得分。

约束条件

  • 2N5002 \leq N \leq 500
  • 2M1092 \leq M \leq 10^9
  • 1AiM11 \leq A_i \leq M-1
  • 输入中的所有值都是整数。

输入

输入通过标准输入给出,格式如下:

NN MM
A1A_1 A2A_2 \ldots ANA_N

输出

输出答案。


示例输入 1

4 10
4 2 3 2

示例输出 1

20

考虑以下场景。下面的 XmodYX \bmod Y 表示将非负整数 XX 除以正整数 YY 的余数。

  1. 从盒子中拿出第一个球和第三个球,得分为 (43+34)mod10=5(4^3 + 3^4) \bmod 10 = 5。然后,吃掉第一个球并将第三个球放回盒子中。现在,盒子中还剩下第二个、第三个和第四个球。
  2. 从盒子中拿出第三个球和第四个球,得分为 (32+23)mod10=7(3^2 + 2^3) \bmod 10 = 7。然后,吃掉第三个球并将第四个球放回盒子中。现在,盒子中还剩下第二个和第四个球。
  3. 从盒子中拿出第二个球和第四个球,得分为 (22+22)mod10=8(2^2 + 2^2) \bmod 10 = 8。然后,吃掉第二个球并将第四个球放回盒子中。现在,盒子中只剩下第四个球。

在这里,高桥总共得到 5+7+8=205 + 7 + 8 = 20 分,这是可能的最大值。


示例输入 2

20 100
29 31 68 20 83 66 23 84 69 96 41 61 83 37 52 71 18 55 40 8

示例输出 2

1733