using System; using System.IO; using System.Linq; using System.Collections.Generic; using System.Text; public class Program { public void Proc() { int target = int.Parse(Reader.ReadLine()); for (int i = 1; i <= 100000; i++) { int oneCount = i * (i - 1) / 2; if(target % oneCount != 0) { continue; } int num = target / oneCount; for (int j = 0; j <= 30-i;j++) { int num2 = 1 << j; if(num2 < num) { continue; } if(num2 == num) { List ans = new List(); for (int k = 0; k < i;k++) { ans.Add(1); } for (int k = 0; k < j; k++) { ans.Add(0); } Console.WriteLine(ans.Count); Console.WriteLine(string.Join(" ", ans)); return; } else { break; } } } } public class Reader { static StringReader sr; public static bool IsDebug = false; public static string ReadLine() { if (IsDebug) { if (sr == null) { sr = new StringReader(InputText.Trim()); } return sr.ReadLine(); } else { return Console.ReadLine(); } } private static string InputText = @" 96 "; } public static void Main(string[] args) { #if DEBUG Reader.IsDebug = true; #endif Program prg = new Program(); prg.Proc(); } }