0012 - Jakarta Skyscrapers

時間制限 1 秒 / メモリ制限 256 MB / 得点 100 / Writer root / x 2 / 統計 /


TLE
1sec
MLE
256MB
得点
100

課題(Description)

ジャカルタには一直線上に建てられた N 個の超高層ビルがある.ビルには左から右の順に,0 から N − 1 までの番号が付けられている.ジャカルタにはこれら以外の超高層ビルはない.

ジャカルタには ドージ (doge) と呼ばれる神秘的な生き物が M 匹生息している.ドージには 0 から M − 1 までの番号が付けられている.最初,ドージ i は超高層ビル Bi にいる.ドージ i は神秘的な力を持っており,その力は正整数 Pi で表される.神秘的な力を使って,ドージは超高層ビルの間をジャンプすることができる.神秘的な力 p を持つドージの現在位置が超高層ビル b のとき,1 回のジャンプによって,そのドージは超高層ビル b + p (0 ≤ b + p < N のとき),または,超高層ビル bp (0 ≤ bp < N のとき) のいずれかへ移動することができる.

ドージ 0 は最高位のドージであり,すべてのドージのリーダーである.ドージ 0 は,ドージ 1 に伝えるべき緊急のニュースを持っている.できるだけ早くそのニュースをドージ 1 に伝えたい.ニュースを受け取ったドージのみが,次のいずれかの行動をとることができる.

  • 他の超高層ビルにジャンプで移動する.
  • 同じ超高層ビルにいる他のドージにニュースを伝える.
  • もし,ニュースをドージ 1 に伝えることが可能な場合は,そのために必要な全ドージのジャンプの合計回数の最小値を求めることで,ドージたちを助けてほしい.

    入力形式(Input Format)

    1 行目には,整数 N, M が書かれている.続く M 行のうちのそれぞれには,2 つの整数 Bi, Pi が書かれている.

    出力形式(Ouput Format)

    ジャンプの合計回数の最小値を 1 行で出力せよ.もし,ニュースをドージ 1 に伝えることが不可能な場合は -1 を出力せよ.

    入力例(Sample Input)

    5 3
    0 2
    1 1
    4 1

    出力例(Sample Output)

    5

    解説(Explanation)

    5 回のジャンプによってニュースを伝えるには,次のように行動すればよい.

  • ドージ 0 が,まず超高層ビル 2 にジャンプして,次に超高層ビル 4 にジャンプする.(2回のジャンプを行う.)
  • ドージ 0 がニュースをドージ 2 に伝える.
  • ドージ 2 が超高層ビル 3 にジャンプして,次に超高層ビル 2 にジャンプして,その次に超高層ビル 1 にジャンプする.(3 回のジャンプを行う.)
  • ドージ 2 がニュースをドージ 1 に伝える.
  • 小課題(Subtasks)

    すべての入力データは以下の条件を満たす.

  • 0 ≦ Bi < N
  • 小課題 1 (Subtask 1) [10 点]

    • 1 ≤ N ≤ 10
    • 1 ≤ Pi ≤ 10
    • 2 ≤ M ≤ 3

    小課題 2 (Subtask 2) [12 点]

    • 1 ≤ N ≤ 100
    • 1 ≤ Pi ≤ 200
    • 2 ≤ M ≤ 2,000

    小課題 3 (Subtask 3) [14 点]

    • 1 ≤ N ≤ 2,000
    • 1 ≤ Pi ≤ 2,000
    • 2 ≤ M ≤ 2,000

    小課題 4 (Subtask 4) [21 点]

    • 1 ≤ N ≤ 2,000
    • 1 ≤ Pi ≤ 2,000
    • 2 ≤ M ≤ 30,000

    小課題 5 (Subtask 5) [43 点]

    • 1 ≤ N ≤ 30,000
    • 1 ≤ Pi ≤ 30,000
    • 2 ≤ M ≤ 30,000