#include<bits/stdc++.h>
using namespace std;
int par[100001];
int length[100001];
void init(int n){
  for(int i=1;i<=n;i++){
    par[i]=i;
    length[i]=1;
  }
  return;
}
int root(int n){
  if(par[n]==n)return n;
  return root(par[n]);
}
void unit(int x,int y){
  x=root(x);
  y=root(y);
  if(x==y)return;
  if(length[x]>length[y]){
    par[y]=x;
    length[x]++;
  }
  else{
    par[x]=y;
    length[y]++;
  }
  return;
}
int main(){
  int n,m;cin>>n>>m;
  int p[n];for(int i=0;i<n;i++)cin>>p[i];
  int x[m],y[m];for(int i=0;i<m;i++)cin>>x[i]>>y[i];
  init(n);
  for(int i=0;i<m;i++){
    unit(x[i],y[i]);
  }
  int sum=0;
  for(int i=0;i<n;i++){
    if(root(p[i])==root(i+1))sum++;
  }
  cout<<sum<<endl;
}
  