#include<bits/stdc++.h>
#define MP make_pair
#define ii pair<int,int>
#define N 2*100005
using namespace std;
map<ii,int> mp;
ii p[N];
int a[2][N];
int n,k,l,x,y;
int bul(int q,int m) {
    if(a[q][m]==m) return m;
    return a[q][m]=bul(q,a[q][m]);
}
int main() {
    cin>>n>>k>>l;
    for(int i=1;i<=n;i++) {
        a[0][i]=a[1][i]=i;
    }
    for(int i=1;i<=k;i++) {
        cin>>x>>y;
        a[0][bul(0,x)]=bul(0,y);
    }
    for(int i=1;i<=l;i++) {
        cin>>x>>y;
        a[1][bul(1,x)]=bul(1,y);
    }
    for(int i=1;i<=n;i++) {
        p[i]=MP(a[0][bul(0,i)],a[1][bul(1,i)]);
        mp[p[i]]++;
    }
    for(int i=1;i<=n;i++) {
        cout<<mp[p[i]]<<' ';
    }
}
