#include <iostream>
#include <fstream>
#include <set>
#include <unordered_set>
#include <string>
#include <queue>
#include <algorithm>
#include <vector>
#include <array>
#include <cmath>
#include <map>
#include <limits.h>
#include <numeric>
#include <valarray>
#include <stdio.h>
#include <iomanip>
#include <stack>
#include <cstdlib>
#include <list>
using namespace std;
 
#define ll long long
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
const double pi = 3.14159265358979323846, eps = 0.000001;
const ll M = 1e9 + 7, I = 1e18;
const int mxn = 1e5 + 2, mxn1 = 1e7, lg = 20;
int n, m;
array<ll, 2> l[mxn], r[mxn];
ll k[mxn], mnl = -M, mxl = M, mnr = -M, mxr = M;
bool dpl[mxn], dpr[mxn], upl = 1, upr = 1;
vector<int> ans;

int main() {
    cin >> n >> m;
    k[0] = 0;
    l[0] = {-M, M};
    r[0] = {-M, M};
    for (int i = 1; i <= n; i++) {
        cin >> k[i];
        cin >> l[i][0] >> l[i][1] >> r[i][0] >> r[i][1];
    }
    n++;
    dpl[n] = 1;
    dpr[n] = 1;
    for (int i = n - 1; i >= 0; i--) {
        mnr = max(mnr, r[i][0]);
        mxr = min(mxr, r[i][1]);
        mnl = max(mnl, l[i][0]);
        mxl = min(mxl, l[i][1]);
        bool a = 0, a1 = 0, b = 0, b1 = 0;;
        if (upr and k[i] >= mnl and k[i] <= mxl) {
            a = 1;
        }
        if (upl and k[i] >= mnr and k[i] <= mxr) {
            b = 1;
        }
        //
        if (a) {
            dpl[i] = 1;
            upl = 1;
            mnr = r[i][0];
            mxr = r[i][1];
        }
        else {
            if (k[i] < l[i][0] or k[i] > l[i][1]) upl = 0;
        }
        if (b) {
            dpr[i] = 1;
            upr = 1;
            mnl = l[i][0];
            mxl = l[i][1];
        }
        else {
            if (k[i] < r[i][0] or k[i] > r[i][1]) upr = 0;
        }
    }
    if (!dpl[0] and !dpr[0]) {
        cout << "No";
        return 0;
    }
    int ind;
    if (dpl[0]) ind = 0;
    else ind = 1;
    ans.push_back(ind);
    ind = (ind + 1) % 2;
    for (int i = 1; i < n; i++) {
        if (ind == 0 and !dpl[i]) {
            ans.push_back(ind);
            continue;
        }
        if (ind == 1 and !dpr[i]) {
            ans.push_back(ind);
            continue;
        }
        ans.push_back(ind);
        ind = (ind + 1) % 2;
    }
    cout << "Yes" << endl;
    for (int i = 1; i < (int)ans.size(); i++) cout << ans[i] << " ";
    return 0;
    cout << endl << endl;
    for (int i = n; i >= 0; i--) {
        cout << i << " | " << dpl[i] << " " << dpr[i] << endl;
    }
}
