using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int[] NList => ReadLine().TrimStart().Split().Select(int.Parse).ToArray(); static int[] NMi => ReadLine().Split().Select(c => int.Parse(c) - 1).ToArray(); static int[][] NMap(int n) => Enumerable.Repeat(0, n).Select(_ => NMi).ToArray(); public static void Main() { Solve(); } static void Solve() { var d = new List(); d.Add(new int[] { 999955281, -999916840 }); for (var i = 0; i < 44719; ++i) { var last = d[d.Count - 1]; d.Add(new int[] { last[0] + 1, last[1] + d.Count }); } var cnt = d.Count; for (var i = cnt - 2; i > 0; --i) d.Add(new int[] { d[i][0], -d[i][1]}); for (var i = 1; i < cnt; ++i) d.Add(new int[] { -d[i][1], d[i][0] }); for (var i = cnt - 2; i > 0; --i) d.Add(new int[] { d[i][1], d[i][0] }); for (var i = 1; i < cnt; ++i) d.Add(new int[] { -d[i][0], -d[i][1] }); for (var i = cnt - 2; i > 0; --i) d.Add(new int[] { -d[i][0], d[i][1] }); for (var i = 1; i < cnt; ++i) d.Add(new int[] { d[i][1], -d[i][0] }); for (var i = cnt - 2; i > 0; --i) d.Add(new int[] { -d[i][1], -d[i][0] }); // d.RemoveAt(0); WriteLine(d.Count - 1); // var prev = Math.Atan2(d[0][1] - d[d.Count - 1][1], d[0][0] - d[d.Count - 1][0]); // for (var i = 0; i < d.Count; ++i) // { // if (i + 1 < d.Count) // { // var cur = Math.Atan2(d[i + 1][1] - d[i][1], d[i + 1][0] - d[i][0]); // if (cur == prev || (cur < prev && cur + Math.PI * 2 - prev > 1)) // { // WriteLine("!!! at" + i); // WriteLine(string.Join(" ", d[i - 1]) + " " + prev); // WriteLine(string.Join(" ", d[i]) + " " + cur); // WriteLine(string.Join(" ", d[i + 1])); // return; // } // WriteLine($"{d[i][0]} {d[i][1]} {cur}"); // prev = cur; // } // else // { // var cur = Math.Atan2(d[0][1] - d[i][1], d[0][0] - d[i][0]); // if (cur == prev || (cur < prev && cur + Math.PI * 2 - prev > 1)) // { // WriteLine("!!! at" + i); // WriteLine(string.Join(" ", d[i - 1])); // WriteLine(string.Join(" ", d[i])); // WriteLine(string.Join(" ", d[i + 1])); // return; // } // WriteLine($"{d[i][0]} {d[i][1]} {cur}"); // prev = cur; // } // } WriteLine(string.Join("\n", d.Skip(1).Select(di => string.Join(" ", di)))); } }