using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Competitive_Programming { class MainClass { Scanner sc; static void Main(string[] args) { new MainClass().solve(); } void solve() { sc = new Scanner(); int N = sc.NextInt(); for (int a = 1; a <= N; a++) { for (int b = a; b <= N; b++) { int c = N - a - b; if (a <= b && b <= c) { Console.Write(a); Console.Write(' '); Console.Write(b); Console.Write(' '); Console.Write(c); Console.Write('\n'); } } } } } class Scanner { Queue buf; public Scanner() { buf = new Queue(); this.GetBuf(); } private void GetBuf() { if (buf.Count == 0) { string[] stringArray = Console.ReadLine().Split(' '); foreach (string e in stringArray) { buf.Enqueue(e); } } } public int NextInt() { this.GetBuf(); return int.Parse(buf.Dequeue()); } public long NextLong() { this.GetBuf(); return long.Parse(buf.Dequeue()); } public double NextDouble() { this.GetBuf(); return double.Parse(buf.Dequeue()); } public string Next() { this.GetBuf(); return buf.Dequeue(); } } }