//找到最长单调递增子序列长度
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
int cmp(const void *a, const void *b);
void dp();
struct data
{
int x;
int y;
};
int m;
int n;
int k;
data a[1010];
int d[1010];
double sum;
int main()
{
while(cin >> n >> m)
{
cin >> k;
for(int i = 1; i <= k; i++)
{
cin >> a[i].x >> a[i].y;
d[i] = 1;
}
qsort(a+1, k, sizeof(a[0]), cmp);
dp();
printf("%0.0lf\n", sum);
}
}
int cmp(const void *a, const void *b)
{
if(((data *)a)->x > ((data *)b)->x)
return 1;
else if(((data *)a)->x == ((data *)b)->x)
return ((data *)a)->y - ((data *)b)->y;
else return -1;
}
void dp()
{
for(int i = 1; i <= k; i++)
{
for(int j = 1; j < i; j++)
if(a[i].x > a[j].x && a[i].y > a[j].y)
d[i] = d[i] > d[j] + 1 ? d[i] : d[j] + 1;
}
int t = 1;
sum = 0;
for(int i = 1; i <= k; i++)
t = d[t] > d[i] ? t : i;
sum = (d[t] * 1.414213) + (m + n - 2 * d[t]);
sum *= 100;
}