#include <iostream>
#include <cstring>
#include <cmath>
#define min(x,y) ((x<y) ? (x) : (y))
using namespace std;
int x,y;
float dp[1001][1001];
bool d[1001][1001];
float solve(int x,int y) {
    if (dp[x][y]!= -1.0)
        return dp[x][y];
    if (x == 0 && y == 0)
        return (dp[x][y] = 0.0);
    if (x == 0 )
        return (dp[x][y] = y*100);
    if (y == 0)
        return (dp[x][y] = x*100);
    float ret;
    float r1,r2,r3;
    r1 = 100.0 + solve(x-1,y);
    r2 = 100.0 + solve(x,y-1);
    ret = min(r1,r2);
    if (d[x][y]) {
        r3 = solve(x-1,y-1);
        r3 = r3 + 141.42;
        ret = min(ret,r3);
    }
    dp[x][y] = ret;
    return ret;
}
int main() {
    cin >> x >> y;
    int k;
    int d1,d2;
    cin >> k;
    memset(dp,-1.0,sizeof dp);
    memset(d,false,sizeof d);
    for (int i=0;i<k;i++) {
        cin >> d1 >> d2;
        d[d1][d2]=true;
    }
    float dist = solve(x,y);
    int ans = dist;
    if (dist - ans > 0.5) {
        ans++;
    }
    cout << ans << endl;
}
