// Errichto
#include<bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for(int i = (a); i <= (b); ++i)
#define RI(i,n) FOR(i,1,(n))
#define REP(i,n) FOR(i,0,(n)-1)
int main() {
int s;
scanf("%d", &s);
if(s == 11) {
puts("5");
puts("21 14 8 17 1");
return 0;
}
const int M = 1000 * 1000;
if(s <= M) {
puts("2");
printf("%d %d\n", s, s);
return 0;
}
vector<int> w;
w.push_back(M);
while(s >= M) {
w.push_back(M);
s -= M;
}
if(s) {
w.push_back(1);
--s;
}
if(s == 1) w.push_back(1);
else if(s) for(int i = 0; i < 2; ++i) w.push_back(s-1);
printf("%d\n", (int) w.size());
for(int a : w) printf("%d ", a);
puts("");
return 0;
}
Ly8gRXJyaWNodG8KI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBGT1IoaSxhLGIpIGZvcihpbnQgaSA9IChhKTsgaSA8PSAoYik7ICsraSkKI2RlZmluZSBSSShpLG4pIEZPUihpLDEsKG4pKQojZGVmaW5lIFJFUChpLG4pIEZPUihpLDAsKG4pLTEpCgppbnQgbWFpbigpIHsKCWludCBzOwoJc2NhbmYoIiVkIiwgJnMpOwoJaWYocyA9PSAxMSkgewoJCXB1dHMoIjUiKTsKCQlwdXRzKCIyMSAxNCA4IDE3IDEiKTsKCQlyZXR1cm4gMDsKCX0KCWNvbnN0IGludCBNID0gMTAwMCAqIDEwMDA7CglpZihzIDw9IE0pIHsKCQlwdXRzKCIyIik7CgkJcHJpbnRmKCIlZCAlZFxuIiwgcywgcyk7CgkJcmV0dXJuIDA7Cgl9Cgl2ZWN0b3I8aW50PiB3OwoJdy5wdXNoX2JhY2soTSk7Cgl3aGlsZShzID49IE0pIHsKCQl3LnB1c2hfYmFjayhNKTsKCQlzIC09IE07Cgl9CglpZihzKSB7CgkJdy5wdXNoX2JhY2soMSk7CgkJLS1zOwoJfQoJaWYocyA9PSAxKSB3LnB1c2hfYmFjaygxKTsKCWVsc2UgaWYocykgZm9yKGludCBpID0gMDsgaSA8IDI7ICsraSkgdy5wdXNoX2JhY2socy0xKTsKCXByaW50ZigiJWRcbiIsIChpbnQpIHcuc2l6ZSgpKTsKCWZvcihpbnQgYSA6IHcpIHByaW50ZigiJWQgIiwgYSk7CglwdXRzKCIiKTsKCXJldHVybiAwOwp9Cg==