#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define Mp make_pair
#define pb push_back

using ll = long long;
using db = double;
using pii = pair<int, int>;
using vi = vector<int>;
mt19937 mrand(time(0));
ll get(ll r) { return ((ll)mrand() * mrand() % r + r) % r; }
ll get(ll l, ll r) { return get(r - l + 1) + l; }

signed main() {
    vi a(4); for(int& i : a) cin >> i;
    int bo = 0, sum = a[0] + a[1] + a[2] + a[3];
    function<void(int, int)> dfs = [&](int x, int nw) {
        if(x == 4) return bo |= (2 * nw == sum), void();
        dfs(x + 1, nw), dfs(x + 1, nw + a[x]);
    }; dfs(0, 0);
    puts(bo ? "Yes" : "No");
    fprintf(stderr, "time=%.4f\n", (db)clock()/CLOCKS_PER_SEC);
    return 0;
}
/**
 * code generated by JHelper
 * More info: https://github.com/AlexeyDmitriev/JHelper
 * @author tatsumack
 */

#include <iostream>
#include <fstream>

#include <bits/stdc++.h>

#define int long long
#define REP(i, n) for (int i = 0, i##_len = (n); i < i##_len; ++i)
#define FOR(i, a, b) for (int i = (a), i##_len = (b); i <= i##_len; ++i)
#define REV(i, a, b) for (int i = (a); i >= (b); --i)
#define CLR(a, b) memset((a), (b), sizeof(a))
#define DUMP(x) cout << #x << " = " << (x) << endl;
#define INF 1001001001001001001ll
#define fcout cout << fixed << setprecision(12)

using namespace std;

class CCalculator {
public:
    map<int, int> memo;

    int fib(int n) {
        if (n == 1 || n == 2) return 1;
        if (memo.count(n)) return memo[n];
        return memo[n] = fib(n - 1) + fib(n - 2);
    }

    void solve(std::istream& cin, std::ostream& cout) {
        int N;
        cin >> N;
        set<int> s;
        REV(i, 90, 0) {
            int val = fib(i + 1);
            if (N >= val) {
                N -= val;
                s.insert(i + 1);
            }
        }

        int num = *s.rbegin();
        if (num % 2 == 0) num++;

        vector<int> res;
        FOR(i, 1, num) {
            if (i % 2 == 1) {
                res.push_back(3);
            } else {
                res.push_back(4);
            }
            if (s.count(num - i + 1)) {
                if (i % 2 == 1) {
                    res.push_back(1);
                } else {
                    res.push_back(2);
                }
            }
        }
        cout << res.size() << endl;
        REP(i, res.size()) cout << res[i] << endl;
    }
};


signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    std::istream& in(std::cin);
    std::ostream& out(std::cout);

    CCalculator solver;
    solver.solve(in, out);
    return 0;
}
