#abc269g. [abc269_g]Reversible Cards 2

[abc269_g]Reversible Cards 2

题目描述

我们有 NN 张卡片,编号从 11NN
ii 张卡片正面写着整数 AiA_i,背面写着整数 BiB_i。这里,i=1N(Ai+Bi)=M\sum_{i=1}^N (A_i + B_i) = M
对于每个 k=0,1,2,...,Mk=0,1,2,...,M,解决以下问题。

NN 张卡片按照正面可见的方式排列。你可以选择翻转 00NN 张卡片(包括 00 张和 NN 张)。
为了使得可见数字的和等于 kk,至少需要翻转多少张卡片?打印这些卡片的数量。
如果没有办法通过翻转卡片使得可见数字的和等于 kk,则打印 1-1

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 0M2×1050 \leq M \leq 2 \times 10^5
  • 0Ai,BiM0 \leq A_i, B_i \leq M
  • i=1N(Ai+Bi)=M\sum_{i=1}^N (A_i + B_i) = M
  • 输入中的所有值都是整数。

输入和输出

输入以以下格式从标准输入给出:

N MN\ M A1 B1A_1\ B_1 A2 B2A_2\ B_2 \vdots AN BNA_N\ B_N

输出应为 M+1M+1 行。第 ii 行应包含 k=i1k=i-1 的问题的答案。

样例

样例输入 1

3 6
0 2
1 0
0 3

样例输出 1

1
0
2
1
1
3
2

例如,对于 k=0k=0,只需翻转第 22 张卡片,这样可见数字的和为 0+0+0=00+0+0=0。这个选择是最优的。
对于 k=5k=5,翻转所有的卡片,可见数字的和为 2+0+3=52+0+3=5。这个选择也是最优的。

样例输入 2

2 3
1 1
0 1

样例输出 2

-1
0
1
-1

样例解释 2

没有办法通过翻转卡片使得可见数字的和等于 k=0k=0k=3k=3

样例输入 3

5 12
0 1
0 3
1 0
0 5
0 2

样例输出 3

1
0
1
1
1
2
1
2
2
2
3
3
4