/* Author: goats_9 */
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
constexpr int INF = 1e9;
int main() {
cin.tie(0)->sync_with_stdio(0);
int n, m;
cin >> n >> m;
vector<vector<pair<int, int>>> g(n + 1);
vector<int> indeg(n + 1);
for (int i = 0; i < m; i++) {
int l, r, k, v;
cin >> l >> r >> k >> v;
++r;
if (v == 0) {
g[r].emplace_back(l, r - l - k);
++indeg[l];
} else {
g[l].emplace_back(r, k - r + l - 1);
++indeg[r];
}
}
vector<int> dis(n + 1, INF);
for (int i = 0; i <= n; i++) if (!indeg[i]) dis[i] = 0;
for (int z = 0; z <= n; z++) {
for (int i = 0; i <= n; i++) {
for (auto [j, w] : g[i]) {
dis[j] = min(dis[j], w + dis[i]);
}
}
}
bool ok = true;
for (int i = 0; i <= n; i++) {
for (auto [j, w] : g[i]) {
if (dis[i] + w < dis[j]) ok = false;
}
}
if (!ok) return cout << -1, 0;
for (int i = 1; i <= n; i++) cout << dis[i - 1] - dis[i] << ' ';
return 0;
}