program main
  implicit none
  integer::N,i,M,j,k
  integer::total
  integer,allocatable::tuple(:,:)
  character*32::cformat='(        (i0,1x,i0,1x,i0))'

  data total/0/
  read *,N
  M = N/3
  do i=1, M
     total = total + (N-i)/2-i+1
  end do
  allocate(tuple(3,total))
  total = 1
  do i=1, M
     do j=i,(N-i)/2
        tuple(1,total)=i
        tuple(2,total)=j
        tuple(3,total)=N-i-j
        total = total + 1
     end do
  end do

  print '(i0,1x,i0,1x,i0)', tuple

end program main