← Home
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...)
}