#include<bits/stdc++.h>
using namespace std;
int n,m;
int k;
int size[20001];
int fa[20001];
int dp[20001];
int ans=1000000,ans1;
int find(int x){
if(fa[x]==x){
return fa[x];
}
fa[x]=find(fa[x]);
return fa[x];
}
int main(){
scanf("%d%d%d",&n,&m,&k);
if(m==0){
cout<<"0";
return 0;
}
if(k==0){
cout<<m;
return 0;
}
for (int i=1;i<=n;i++){
size[i]=1;
fa[i]=i;
}
for (int i=1;i<=k;i++){
int u,v;
scanf("%d%d",&u,&v);
int u1=find(u);
int v1=find(v);
if(u1!=v1){
fa[u1]=v1;
size[v1]+=size[u1];
size[u1]=1000000;
}
}
sort(size+1,size+1+n);
for (int i=1;i<=n&&size[i]!=1000000;i++){
size[i]+=size[i-1];
for (int j=0;j<=i;j++){
if(ans>abs(m-(size[i]-size[j]))){
ans=abs(m-(size[i]-size[j]));
ans1=size[i]-size[j];
}
}
}
cout<<ans1;
}