#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:256000000")
using namespace std;
struct item {
  int l, r, q;
};
item a[100007];
int t[100007 * 4];
int t_add[100007 * 4];
void add(int v, int l, int r, int pl, int pr, int delta) {
  if (pl > pr) return;
  if (pr < l || r < pl) return;
  if (pl <= l && r <= pr) {
    t_add[v] |= delta;
    t[v] |= delta;
    return;
  }
  int lr = (l + r) >> 1;
  add(v + v, l, lr, pl, pr, delta);
  add(v + v + 1, lr + 1, r, pl, pr, delta);
  t[v] = (t[v + v] & t[v + v + 1]) | t_add[v];
}
int get(int v, int l, int r, int pl, int pr) {
  if (pl > pr) return (1 << 30) - 1;
  if (pr < l || r < pl) return (1 << 30) - 1;
  if (pl <= l && r <= pr) return t[v];
  int lr = (l + r) >> 1;
  return (get(v + v, l, lr, pl, pr) & get(v + v + 1, lr + 1, r, pl, pr)) |
         t_add[v];
}
int main() {
  ios::sync_with_stdio(false);
  int n, m;
  cin >> n >> m;
  for (int i = 0; i < m; i++) cin >> a[i].l >> a[i].r >> a[i].q;
  for (int i = 0; i < m; i++) add(1, 1, n, a[i].l, a[i].r, a[i].q);
  for (int i = 0; i < m; i++) {
    int val = get(1, 1, n, a[i].l, a[i].r);
    if (val != a[i].q) {
      cout << "NO";
      return 0;
    }
  }
  cout << "YES" << endl;
  for (int i = 1; i <= n; i++) cout << get(1, 1, n, i, i) << " ";
  return 0;
}
