#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6+11;
typedef long long ll;
int l[maxn],r[maxn],mark[maxn];
int ra[maxn],rsq[maxn];
//struct ST{
// ll sum[maxn<<2];
// ll lazy[maxn<<2];
// #define lc o<<1
// #define rc o<<1|1
//}st;
int n,q;
int main(){
while(scanf("%d%d",&n,&q)!=EOF){
for(int i = 1; i <= q; i++) scanf("%d%d%d",&l[i],&r[i],&mark[i]);
for(int i = 1; i <= q; i++){
ra[i]=l[i];ra[i+q]=r[i];
}
sort(ra+1,ra+2*q+1);
int qq = unique(ra+1,ra+2*q+1)-ra-1;
for(int i = 1; i <= qq; i++)cout<<ra[i]<<" ";cout<<endl;
for(int i = 1; i <= q; i++){
l[i]=lower_bound(ra+1,ra+qq+1,l[i])-ra;
r[i]=lower_bound(ra+1,ra+qq+1,r[i])-ra;
}
rsq[1]=ra[1];
for(int i = 2; i <= qq; i++) rsq[i]=rsq[i-1]+ra[i];
// for(int i = 1; i <= q; i++) cout<<l[i]<<" "<<r[i]<<endl;
// for(int i = 1; i <= qq; i++) cout<<rsq[i]<<" ";cout<<endl;
}
}