#include <bits/stdc++.h>
using namespace std;
int p[1000005]; //并查集数组
int find(int x) //标准并查集find函数
{
if(x!=p[x]) p[x] = find(p[x]);
return p[x];
}
int main()
{
int m,n,k;
int sum;
cin >> m >> n >> k;
for(int i = 1; i <= m * n; i ++) p[i] = i; //并查集初始化
for(int i = 1; i <= k; i ++)
{
int a,b;
cin >> a >> b; //加到同个集合里
p[find(a)] = find(b);
}
for(int i = 1; i <= m * n; i ++)
{
if(i == find(i)) sum++; //只统计树顶 有多少个顶就有多少合根植物
}
cout << sum;
return 0;
}