#958. 前缀不等

前缀不等

前缀不等

内存限制: 256 Mb 时间限制: 1000 ms

题目描述

小象拿到了一个序列a a,其中每个数都不相同。它想把这个序列重排之后拿给它的朋友炫耀。

它的朋友习惯观察一个序列的每一个前缀。但是它的朋友非常不喜欢一个数x x,如果一个序列有一个前缀的和为x x,它的朋友看了就会不高兴。

小象当然不希望它的朋友生气,所以它希望重排之后的序列没有前缀满足和为x x。同时小象为了省事,它希望找到一个字典序最小的重排。请告诉它方案,或者告诉它这样的方案不存在。

输入格式

第一行两个整数n,x n,x。

第二行共n n 个整数a1,a2,⋯ ,an a_1,a_2,\cdots,a_n,表示小象初始得到的序列a a,满足互不相同。

输出格式

第一行输出一个字符串 Yes 或 No,表示是否存在这样的重排方案。

第一行的输出若为 Yes,则第二行n n 个整数,表示字典序最小的重排方案。

数据范围

  • 对于 60% 的数据,n≤10n \leq 10;
  • 对于 100% 的数据,n≤1000n \leq 1000;
  • 对于所有数据,1≤n≤1031 \leq n \leq 10^3,1≤ai≤1051 \leq a_i \leq 10^5,1≤x≤1081 \leq x \leq 10^8,且ai a_i 互不相同。

样例数据

输入:

3 2
3 2 1

输出:

Yes
1 2 3