Pagini recente » Cod sursa (job #2264243) | Cod sursa (job #2819227) | Cod sursa (job #377687) | Cod sursa (job #3175275) | Cod sursa (job #1232873)
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <string>
#include <map>
#include <set>
#include <cmath>
#include <fstream>
#include <ctime>
#include <bitset>
#include <limits>
#include <numeric>
#include <list>
#include <cstdlib>
#include <iomanip>
#include <vector>
#include <queue>
#include <stack>
#include <cctype>
using namespace std;
#define x first
#define y second
long long cmmdc(long long a, long long b) {
long long r;
do {
r = a % b;
a = b;
b = r;
} while(r);
return a;
}
int main () {
#ifndef ONLINE_JUDGE
freopen("oz.in", "r", stdin);
freopen("oz.out", "w", stdout);
#endif
cin.sync_with_stdio(false);
int n, m;
cin >> n >> m;
vector<long long> v(n, 1);
vector<int> x(m), y(m), d(m);
for(int i = 0; i < m; i++) {
cin >> x[i] >> y[i] >> d[i];
--x[i], --y[i];
v[x[i]] *= (d[i] / cmmdc(v[x[i]], d[i]));
v[y[i]] *= (d[i] / cmmdc(v[y[i]], d[i]));
}
for(int i = 0; i < m; i++)
if(d[i] != cmmdc(v[x[i]], v[y[i]]) || v[x[i]] > 2000000000 || v[y[i]] > 2000000000)
{
cout << "-1\n";
return 0;
}
for(int i = 0; i < v.size(); i++)
cout << v[i] << " ";
return 0;
}