#include<bits/stdc++.h>
using namespace std;
//int f[30000005];
int n,m;
struct point{
int vis,f,l;
}a[11451444];
int find(int x){
if(a[x].f==x)return x;
return a[x].f=find(a[x].f);
}
void join(int x,int y){
a[find(x)].f=find(y);
a[y].l=x;
}
void send(int x,int y){
a[x].vis+=y;
if(a[x].l==0)return;
send(a[x].l,y);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)a[i].f=i,a[i].l=i,a[i].vis=0;
for(int i=1;i<=m;i++){
int s;
cin>>s;
if(s==1){
int x,y;
cin>>x>>y;
join(x,y);
}else{
int p,t;
cin>>p>>t;
send(a[p].f,t);
}
}
for(int i=1;i<=n;i++){
cout<<a[i].vis<<" ";
}
return 0;
}