recursive subroutine qsort(a,s,t) integer::a(*) integer::s,t integer::i,j,k,l,m,n if(t-s<=1)return i=s j=t-1 m=a((s+t)/2) do do while(a(i)m) j=j-1 end do if(i>=j)exit a(i)=xor(a(i),a(j)) a(j)=xor(a(i),a(j)) a(i)=xor(a(i),a(j)) i=i+1 j=j-1 end do call qsort(a,s,i) call qsort(a,j+1,t) end subroutine qsort program main implicit none integer::i,j,k,l,m,cnt1=0,cnt2=0,N,W,H,a(1000000),b(1000000) integer::ans read*,W read*,H read*,N do i=1,N read(*,*)a(i),b(i) end do call qsort(a,1,N+1) call qsort(b,1,N+1) do i=1,N if(i+1<=N.and.a(i)==a(i+1))cycle cnt1=cnt1+1 end do do i=1,N if(i+1<=N.and.b(i)==b(i+1))cycle cnt2=cnt2+1 end do ans=H*W-(W-cnt1)*(H-cnt2)-N print*,ans end program main