//huge
#include<stdio.h>
FILE *f1,*f2;
int ll,nn,ok,d,b,h,i,j,k,n,ng,x,y,z,t,p;
char ma[36][36][36],l[2600],c[2600],a[2600];
int ant[2600];
int main(){
f1=fopen("alge.in","r");
f2=fopen("alge.out","w");
fscanf(f1,"%d%d",&n,&ng);
for(h=1;h<=ng;h++){
fscanf(f1,"%d%d%d%d",&x,&y,&z,&t);
for(i=x;i<=x+t-1;i++){
for(j=y;j<=y+t-1;j++){
for(k=z;k<=z+t-1;k++){
ma[i][j][k]=1;
}
}
}
}
l[1]=1;
c[1]=1;
a[1]=1;
ll=1;
i=0;
ok=0;
do{
i++;
if(l[i]==n&&c[i]==n&&a[i]==n){
ok=1;
}
else{
//l
if((l[i]-1>0)&&ma[l[i]-1][c[i]][a[i]]==0){
ma[l[i]-1][c[i]][a[i]]=1;
ll++;
l[ll]=l[i]-1;
c[ll]=c[i];
a[ll]=a[i];
ant[ll]=i;
}
if((l[i]+1<n+1)&&ma[l[i]+1][c[i]][a[i]]==0){
ma[l[i]+1][c[i]][a[i]]=1;
ll++;
l[ll]=l[i]+1;
c[ll]=c[i];
a[ll]=a[i];
ant[ll]=i;
}
//c
if((c[i]-1>0)&&ma[l[i]][c[i]-1][a[i]]==0){
ma[l[i]][c[i]-1][a[i]]=1;
ll++;
l[ll]=l[i];
c[ll]=c[i]-1;
a[ll]=a[i];
ant[ll]=i;
}
if((c[i]+1<n+1)&&ma[l[i]][c[i]+1][a[i]]==0){
ma[l[i]][c[i]+1][a[i]]=1;
ll++;
l[ll]=l[i];
c[ll]=c[i]+1;
a[ll]=a[i];
ant[ll]=i;
}
//a
if((a[i]-1>0)&&ma[l[i]][c[i]][a[i]-1]==0){
ma[l[i]][c[i]][a[i]-1]=1;
ll++;
l[ll]=l[i];
c[ll]=c[i];
a[ll]=a[i]-1;
ant[ll]=i;
}
if((a[i]+1<n+1)&&ma[l[i]][c[i]][a[i]+1]==0){
ma[l[i]][c[i]][a[i]+1]=1;
ll++;
l[ll]=l[i];
c[ll]=c[i];
a[ll]=a[i]+1;
ant[ll]=i;
}
}
}while(!ok);
p=i;
while(p!=1){
nn++;
d=ant[p];
ant[p]+=10000;
p=d;
}
fprintf(f2,"%d\n",nn+1);
fprintf(f2,"%d %d %d\n",l[1],c[1],a[1]);
for(p=2;p<i;p++){
if(ant[p]/10000){
fprintf(f2,"%d %d %d\n",l[p],c[p],a[p]);
}
}
fprintf(f2,"%d %d %d",l[i],c[i],a[i]);
return 0;
}