#101. 双面卡片

双面卡片

题目描述

小明有 NN 张双面卡片,第 ii 张卡片的正面印有一个整数 AiA_i,反面印有一个整数 BiB_i

初始时,所有卡片均为正面朝上。

现在你可以选择若干张卡片将其翻面(即将正面变为反面)。 翻动一张卡片的代价为 11

设所有卡片当前正面朝上的数字之和为

S=i=1NAiS = \sum_{i=1}^{N} A_i

对于每一个整数 xx,满足

0xK0 \le x \le K

请你计算:

使得所有卡片正面朝上的数字之和 恰好等于 xx 时,最少需要翻动多少张卡片。

若无法达到该和,则输出 1-1


输入格式

第一行包含两个整数 N,KN, K

接下来 NN 行,每行包含两个整数 Ai,BiA_i, B_i


输出格式

输出一行 K+1K+1 个整数。

xx 个整数(从 00 开始编号)表示: 使总和恰好等于 xx 的最少翻转次数。

若无法达到该和,输出 1-1


数据范围

  • 1N2001 \le N \le 200
  • 0Ai,Bi10000 \le A_i, B_i \le 1000
  • 0K1050 \le K \le 10^5

样例

输入

3 7
4 1
3 5
2 6

输出

-1 -1 -1 -1 -1 -1 1 -1

样例解释

初始总和为

S=4+3+2=9S = 4 + 3 + 2 = 9

翻转第 11 张卡片后总和为

1+3+2=61 + 3 + 2 = 6

因此当 x=6x = 6 时答案为 11。 ...

其余无法达到的值输出 1-1