#Python3/Pypy3テンプレート集 #ライブラリ------------------------------------------------------------------- import bisect import heapq import collections from itertools import groupby import itertools import math import array import string import copy #import numpy as np #Python3 #from scipy.sparse.csgraph import * #from scipy.sparse import csr_matrix #テンプレート------------------------------------------------------------------ INF=10**18 MOD=10**9+7 mod=998244353 def YesNo(b): print("Yes") if b else print("No") def YESNO(b): print("YES") if b else print("NO") #標準入力--------------------------------------------------------------------- import sys sys.setrecursionlimit(10 ** 5 + 10000) input = sys.stdin.readline #### def int1(x): return int(x) - 1 def II(): return int(input()) def MI(): return map(int, input().split()) def MI1(): return map(int1, input().split()) def LI(): return list(map(int, input().split())) def LI1(): return list(map(int1, input().split())) def LIS(): return list(map(int, SI())) def LA(f): return list(map(f, input().split())) def LLI(rows_number): return [LI() for _ in range(rows_number)] def SI(): return input().strip('\n') def MS(): return input().split() def LS(): return list(input().strip('\n')) def LLS(rows_number): return [LS() for _ in range(rows_number)] #関数------------------------------------------------------------------------ def CSL(A): #配列Aの累積和 return [0] + list(itertools.accumulate(A)) def nF(n, m=0): if(n==0): return 0 P = 1 for i in range(1,n+1): P *= i if(m==0): continue P %= m return P def nPr(n, r, m=0): #順列nPr if(n-r<0): return 0 P = 1 for i in range(r,n+1): P *= i if(m==0): continue P %= m return P def nCr(n, r, m=0): #組み合わせnCr if(n-r<0): return 0 N = 1 for i in range(r): N *= n-i if(m==0): continue N %= m R = nF(r) return N//R def DL(n): #nまでの約数のリスト lower_divisors , upper_divisors = [], [] i = 1 while i*i <= n: if n % i == 0: lower_divisors.append(i) if i != n // i: upper_divisors.append(n//i) i += 1 return lower_divisors + upper_divisors[::-1] def PL(n): #nまでの素数のリスト prime_list = [] num_list=[] for i in range(2, n+1): if i not in num_list: prime_list.append(i) for j in range(i*i, n+1, i): num_list.append(j) return prime_list def F2L(n): #2以上の整数n => [[素因数, 指数], ...]の2次元リスト arr = [] temp = n for i in range(2, int(-(-n**0.5//1))+1): if temp%i==0: cnt=0 while temp%i==0: cnt+=1 temp //= i arr.append([i, cnt]) if temp!=1: arr.append([temp, 1]) if arr==[]: arr.append([n, 1]) return arr def DtoN(num_10,n): #10進数からn進数へ変換する(n<=10) str_n = '' while num_10: if num_10%n>=10: return -1 str_n += str(num_10%n) num_10 //= n return int(str_n[::-1]) def StoR(S: str): grouped = groupby(S) res = [] for k, v in grouped: res.append((k, int(len(list(v))))) return res def RtoS(L: "list[tuple]"): res = "" for c, n in L: res += c * int(n) return res def RtoSc(S: str) : grouped = groupby(S) res = "" for k, v in grouped: res += k + str(len(list(v))) return res def ED(dx,dy): #ユークリッド距離を求める return abs(dx + dy * 1j) def dsin(d): #度数法でsinを計算する return math.sin(math.radians(d)) def dcos(d): #度数法でcosを計算する return math.cos(math.radians(d)) def RM(x,y,d,cx=0,cy=0): #P(x,y)をA(cx,cy)を中心としてに反時計回りにd°回転 => x, y nx = (x-cx)*dcos(d)-(y-cy)*dsin(d) ny = (x-cx)*dsin(d)+(y-cy)*dcos(d) return [int(nx+cx+500),int(ny+cy+500)] def engL(): return list(string.ascii_lowercase) def ENGL(): return list(string.ascii_uppercase) def TS(_str): #変数/リストに格納されている値を確認 print('{}: {}'.format(_str, eval(_str))) def BR(): #横線で区切りを入れる print("---") #クラス---------------------------------------------------------------------- #カンニングペーパー----------------------------------------------------------- ''' CSL(A) #配列Aの累積和 nF(n, m) #nの階乗 | m:mod(デフォなし) nPr(n, r, m) #順列nPr | m:mod(デフォなし) nCr(n, r, m) #組み合わせ,nCr | m:mod(デフォなし) DL(n) #nの約数のリスト PL(n) #nまでの素数のリスト F2L(n) #2以上の整数n => [[素因数, 指数], ...]の2次元リスト ED(dx,dy) # #ユークリッド距離を求める DtoN(num_10,n) #10進数からn進数へ変換する(n<=10) StoR #文字列/リストからラングレス圧縮 RtoS #ラングレス圧縮から文字列/文字だけ RtoSc #ラングレス圧縮から文字列/文字と個数 dsin(d): #度数法でsinを計算する dcos(d): #度数法でcosを計算する RM(x,y,d,cx,cy): #P(x,y)をA(cx,cy)を中心としてに反時計回りにd°回転(デフォ原点) => x, y engL() #英小文字のリスト ENGL() #英大文字のリスト TS(_str) #変数/リストに格納されている値を確認 => 出力:〇〇:×× BR() #横線で区切りを入れる ''' #---------------------------------------------------------------------------- #このテンプレートではAtCoder Easy Test v2でnumpyは動かない。 n = II() A = [] A.append(3) s = 3*math.ceil((n-1)/3)+1-(n-2) A.append(s) for i in range(n-2): A.append(1) print(*A)