package main
import(."fmt";"sort")
func main(){
n,m,x:=0,0,[]interface{}{}
Scan(&n,&m)
a:=make([]struct{l,r,v int},n)
for i:=range a{Scan(&a[i].l,&a[i].r,&a[i].v)}
sort.Slice(a,func(i,j int)bool{return a[i].r<a[j].r})
f:=make([]int,n+1)
for _,p:=range a{
v:=p.v
for j:=n;j>v;j--{if f[j-v]>=p.l&&f[j-v]>f[j]{f[j]=f[j-v]}}
f[v]=p.r
}
for i,v:=range f{if v>0{x=append(x,i)}}
Println(len(x))
Println(x...)
}