#include using namespace std; #define FOR(i,a,b) for(int i=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define ALL(v) (v).begin(),(v).end() template inline bool chmax(A &a, B b) { if (a inline bool chmin(A &a, B b) { if (a>b) { a=b; return 1; } return 0; } typedef unsigned long long ull; typedef long long ll; typedef pair pii; typedef pair pll; typedef pair P; const ll INF = 1ll<<29; const ll MOD = 1000000007; const double EPS = 1e-10; int d; int b[11234]; int main() { cin >> d; REP(i, d + 1) scanf("%d", b + i); reverse(b, b + d + 1); FOR(i, 3, d + 1) { int tmp = b[i - 3]; int div[4] = {1,0,-1,0}; REP(j, 4) b[i - 3 + j] -= div[j] * tmp; } int last = 0; while (last < d + 1 && b[last] == 0) last++; vector ans; if (last == d + 1) ans.push_back(0); else FOR(i, last, d + 1) ans.push_back(b[i]); reverse(ALL(ans)); cout << ans.size() - 1 << endl; REP(i, ans.size()) printf("%d%c", ans[i], i == ans.size() - 1 ? '\n' : ' '); return 0; }