class dsu: def __init__(self,n): assert n>0,"n must be Natural" self.n=n self.parents=[-1]*n return def find(self,x): assert xself.parents[y]: x,y=y,x self.parents[x]+=self.parents[y] self.parents[y]=x return def size(self,x): assert x0: if S[i-1]==T[j-1]: ans.append(S[i-1]) i-=1 j-=1 length-=1 elif dp[i][j]==dp[i-1][j]: i-=1 else: j-=1 return len(ans[::-1]) def main(): N,M,Q=map(int,input().split()) uf=dsu(N+M) for _ in[0]*Q: a,b=map(int,input().split()) uf.merge(a-1,N+b-1) A=list(range(0,N)) B=list(range(N,N+M)) g=uf.groups() for i in g: for j in i: if j