#include <iostream>
using namespace std;
int fa[10005], msgSize[10005], n, m, op, a, b;
int find(int now) {
if (fa[now] != now) fa[now] = find(fa[now]);
return fa[now];
}
void merge(int x, int y) {
fa[find(y)] = find(x);
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++) fa[i] = i;
for (int i = 1; i <= m; i++) {
scanf("%d%d%d", &op, &a, &b);
if (op == 1) merge(a, b);
else {
int root = find(a);
for (int i = 1; i <= n; i++) if (find(i) == root) msgSize[i] += b;
}
}
for (int i = 1; i <= n; i++) printf("%d ", msgSize[i]);
return 0;
}