#include <bits/stdc++.h>
#define N 200050
using namespace std;
int n, m, i, j, k, x, y;
set <int> a[N];//盒子去重
multiset <int> b[N];//盒子中的数字不去重
int main(){
    scanf("%d%d", &n, &m);
    for(i=1; i<=m; i++){
        scanf("%d%d", &k, &x);
        if(k == 1){
            scanf("%d", &y);
            a[x].insert(y);//数字x出现在盒子y中
            b[y].insert(x);//盒子有中增加数字x
        }
        else if(k == 2){
            for(auto p=b[x].begin(); p!=b[x].end(); p++){
                printf("%d ", *p);
            }//遍历输出盒子x的数字
            printf("\n");
        }
        else{
            for(auto p=a[x].begin(); p!=a[x].end(); p++){
                printf("%d ", *p);
            }//遍历输出数字x所在盒子
            printf("\n");
        }
    }
    return 0;
}

作者 crxis

发表回复