#include<iostream>
#include<string>
#include<math.h>
using namespace std;
int A[100001];
int root(int x){
    if(A[x]==x) return x;
    else return A[x]=root(A[x]);
}
int main(){
    int n,m,p[100001],x,y;
    cin>>n>>m;
    for(int i=0;i<n;i++) cin>>p[i];
    for(int i=0;i<=n;i++) A[i]=i;
    for(int i=0;i<m;i++){
        cin>>x>>y;
        x=root(x),y=root(y);
        if(x!=y) A[y]=x;
    }
    int ans=0;
    for(int i=0;i<n;i++){
        if(root(p[i])==root(i+1)) ans++;
    }
    cout<<ans;
}