#P50972. 「APIO2015」雅加达的摩天楼 Jakarta Skyscrapers

「APIO2015」雅加达的摩天楼 Jakarta Skyscrapers

题目描述

雅加达(印尼首都)有 NN 座摩天楼排成一列,依次编号为 00N1N−1
MM 只神秘生物 doge 住在雅加达,分别编号为 00M1M−1ii 号 doge 最初居住于 BiB_i 号摩天楼。
doge 能够在摩天楼间跳跃,ii 号 doge 的弹跳力为 Pi(Pi>0)P_{\,i} (P_{\,i}>0) 。每次跳跃,位于 bb 号摩天楼、弹跳力为 pp 的 doge 只能跳跃到 bpb-p 号(若 0bpN0\le b-p\le N)或 b+pb+p 号(若 0b+pN0\le b+p\le N)摩天楼。
00 号 doge 有一条紧急的消息要尽快传送给 11 号 doge。任何一个收到消息的 doge 可以跳跃到其他摩天楼上,也可以将消息传递给它当前所在的摩天楼上的其他 doge。
请帮助 doge 们计算:将消息从 00 号 doge 传递到 11 号 doge 的最少跳跃步数,或者告诉它们消息永远不可能传递到 11 号 doge 。

输入格式

第一行有两个整数 NNMM
接下来 MM 行,每行包含两个整数 BiB_iPiP_{\,i}

输出格式

输出一个整数,表示所需要的最少步数。如果消息永远无法传递到 doge 11,输出 −1\texttt{−1}

样例

5 3
0 2
1 1
4 1
5

下面是一种步数为 5 的解决方案:

doge 00 跳跃到 2 号摩天楼,再跳跃到 4 号摩天楼(2 步)。 doge 00 将消息传递给 doge 22 。 doge 22 跳跃到 3 号摩天楼,接着跳跃到 2 号摩天楼,再跳跃到 1 号摩天楼(3 步)。 doge 22 将消息传递给 doge 11

数据范围与提示

所有数据都保证 0Bi<N0≤B_i<N

子任务 1 (10 分)

  • 1N101≤N≤10
  • 1Pi101≤P_i≤10
  • 2M32≤M≤3

子任务 2 (12 分)

  • 1N1001≤N≤100
  • 1Pi1001≤P_i≤100
  • 2M20002≤M≤2000

子任务 3 (14 分)

  • 1N20001≤N≤2000
  • 1Pi20001≤P_i≤2000
  • 2M20002≤M≤2000

子任务 4 (21 分)

  • 1N20001≤N≤2000
  • 1Pi20001≤P_i≤2000
  • 2M300002≤M≤30000

子任务 5 (43 分)

  • 1N300001≤N≤30000
  • 1Pi300001≤P_i≤30000
  • 2M300002≤M≤30000