#include <bits/stdc++.h>


using namespace std;

using ll = long long;
using pii = pair<int, int>;
const ll mod = 998244353;
const int maxn = 1e6 + 1;


bool solve(int n, int m, vector<pii>& en, vector<pii>& b) {
    int k = 1;
    vector<pii> en(n), b(m);

    //cout << "tyaf" << endl;
    vector<pii> mech;
    sort(b.begin(), b.end());
    for (int i = 0; i < m; i++) {
        while (!mech.empty() && mech.back().second >= b[i].second) {
            mech.pop_back();
        }
        mech.push_back(b[i]);
    }
    for (int i = 0; i < n; i++) {
        if (mech.back().second < en[i].first) {
            return 1;
        }
        en[i].first = lower_bound(mech.begin(), mech.end(), make_pair(en[i].first, 0))->second;
    }
    //cout << "gaf" << endl;
    vector<int> bg(n + 1, n);
    vector<int> st;
    vector<ll> pref(n + 1);
    for (int i = 0; i < n; i++) {
        pref[i + 1] = pref[i] + en[i].second;
    }
    for (int i = 0; i < n; i++) {
        while (!st.empty() && en[st.back()].first < en[i].first) {
            bg[st.back()] = i;
            st.pop_back();
        }
        st.push_back(i);
    }
    //cout << "meow" << endl;
    vector<ll> dp(n + 1, 2e18);
    dp[n] = 0;
    vector<ll> per(n + 1, n);
    en.push_back({2e9, 0});
    bg[n] = -1;
    for (int i = n - 1; i >= 0; i--) {
        // if (en[i].first + max(dp[bg[i]] - pref[bg[i]] + pref[i], 0ll) > en[per[bg[i]]].first + max(dp[per[bg[i]]] - pref[per[bg[i]]] + pref[i], 0ll)) {
        //     dp[bg[i]] = en[i].first + max(dp[bg[i]] - pref[bg[i]] + pref[i], 0ll);
        //     per[i] = bg[i];
        // } else {
        //     dp[bg[i]] = en[per[bg[i]]].first + max(dp[per[bg[i]]] - pref[per[bg[i]]] + pref[i], 0ll);
        //     per[i] = per[bg[i]];
        // }
        int prev = en[i].first;
        for (int j = i + 1; j <= min(n, i + k); j++) {
            dp[i] = min(prev + max(dp[j] - pref[j] + pref[i], 0ll), dp[i]);
            prev = max(prev, en[j].first);
        }
        // int j = bg[i];
        // ll prev = en[i].first;
        // for (; j != -1; j = bg[j]) {
        //     //cout << i << " " << j << endl;
        //     dp[i] = min(prev + max(dp[j] - pref[j] + pref[i], 0ll), dp[i]);
        //     prev = en[j].first;
        // }
    }
    ll sum = 0;
    for (int i = 0; i < n; i++) {
        sum += en[i].first;
    }
    return sum;
}  
signed main() {
#ifdef LOCAL
    freopen("input", "r", stdin);
#else
    ios::sync_with_stdio(0);
    cin.tie(0);
#endif
    int n, m;
    cin >> n >> m;
    if (m % 2 == 0) {
        cout << "No" << endl;
    } else {
        cout << "Yes" << endl;
        cout << ((n + 1) / 2) << endl;
        cout << 1 << endl;
        cout << (n / 2) << " " << ((n + 1) / 2) << endl;
    }
}