#Lutece2855. 旅途

旅途

Migrated from Lutece 2855 旅途

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

你所在的世界是一个无限大的二维平面,你处于原点 (0,0)(0,0)

现在,你想要到坐标 (dx,dy)(d_x,d_y) 去,但路上有 nn 个障碍物,每个障碍物的坐标为 (ai,bi)(a_i,b_i)

假设你处于坐标 (x,y)(x,y),你每次只沿上下左右四个方向之一走一步,即:

  • 如果往上走一步,意味着你所处坐标从 (x,y)(x,y) 变为 (x,y1)(x,y-1)
  • 如果往下走一步,意味着你所处坐标从 (x,y)(x,y) 变为 (x,y+1)(x,y+1)
  • 如果往左走一步,意味着你所处坐标从 (x,y)(x,y) 变为 (x1,y)(x-1,y)
  • 如果往右走一步,意味着你所处坐标从 (x,y)(x,y) 变为 (x+1,y)(x+1,y)

注意,你每走一步之后所处的坐标都不能是某个障碍物的坐标。

你想知道最少要走几步才能到达目的地。

Input

第一行是三个整数 $d_x,d_y,n\ (-500 \leq d_x,d_y \leq 500,1 \le n\leq 10^4)$,表示你想要到坐标 (dx,dy)(d_x,d_y) 去,二维平面上有 nn 个障碍物。

接下来 nn 行,每行描述一个障碍物的坐标 ai,bi (500ai,bi500)a_i,b_i\ (-500 \leq a_i,b_i \leq 500)。同一个位置上可能有多个障碍物。

Output

输出一个数,代表最少的步数。

Samples

2 0 3 
1 0 
1 1 
1 -1
6

Resources

The 19th UESTC Programming Contest Preliminary