#include<iostream> //#include<fstream> #include<vector> #include<queue> #include<algorithm> #include<unordered_map> using namespace std; typedef int var; #define fin cin #define fout cout //ifstream fin("p2.in"); //ofstream fout("p2.out"); vector<var> SOL; var a; int main() { fin>>a; var i; var sum = 1; SOL.push_back(1); for(i=1; sum<=a; i++) { sum += SOL.back(); SOL.push_back(sum); } fout<<SOL.size()<<'\n'; for(auto sol : SOL) { fout<<sol<<" "; } return 0; }