#arc068c. [arc068_c]Snuke Line

[arc068_c]Snuke Line

问题描述

Snuke决定玩一个游戏,在这个游戏中,玩家经营一家铁路公司。在Snuke线路上有M+1M+1个车站,编号从00MM。Snuke线路上的列车会在第00个车站和以后每dd个车站停下来,其中dd是每辆列车的预定常数。例如,如果d=3d=3,则列车会在第00336699等车站停下来。

在Snuke线路周围的区域有NN种纪念品出售。当列车在以下车站之一停下时,可以购买第ii种纪念品:车站lil_ili+1l_i+1li+2l_i+2......rir_i

Snuke线路上的列车有MM个间隔值dd,即两个停靠站之间的间隔:112233......MM。对于这MM个值中的每一个,求出如果乘坐该值的dd在第00个车站停靠的列车,可以购买的纪念品种类数。在这里,假设不允许换乘。

约束条件

  • 1N3×1051 ≦ N ≦ 3 × 10^{5}
  • 1M1051 ≦ M ≦ 10^{5}
  • 1liriM1 ≦ l_i ≦ r_i ≦ M

输入

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

NN MM l1l_1 r1r_1 :: lNl_{N} rNr_{N}

输出

按照每MM行,输出结果。第ii行应该包含如果乘坐在每第ii个车站停靠的列车时可以购买到最多的纪念品种类数。


示例输入 1

3 3
1 2
2 3
3 3

示例输出 1

3
2
2
  • 如果乘坐在每个车站停靠的列车上,可以购买到33种纪念品:第112233种。
  • 如果乘坐在每两个车站停靠的列车上,可以购买到22种纪念品:第11和第22种。
  • 如果乘坐在每三个车站停靠的列车上,可以购买到22种纪念品:第22和第33种。

示例输入 2

7 9
1 7
5 9
5 7
5 9
1 1
6 8
3 4

示例输出 2

7
6
6
5
4
5
5
3
2