# 2635번. 수 이어가기
importsysn=int(input())ifn==1:# 1일때 예외 조심
print(4)print("1 1 0 1")sys.exit()ans=0ansList=[]foriinrange(1,n):cnt=1cntList=[n,i]# 첫번째와 두번째 수는 넣어준다.
whileTrue:num=cntList[cnt-1]-cntList[cnt]# 다음 수 구하기
ifnum<0:# 음의 정수면
ifans<cnt:# 최대값 확인
ans=cntansList=[cntList[i]foriinrange(ans+1)]# 값 넣기
breakcntList.append(num)cnt+=1print(ans+1)print(*ansList)