// Arbitraje entre monedas: lee la tabla y siempre dice que no hay arbitraje. Reemplacen el cálculo.
#include <cstddef>
#include <iostream>
#include <vector>

struct ExchangeRate {
    int from;
    int to;
    double rate;
};

int main() {
    int n = 0;
    int m = 0;
    std::cin >> n >> m;
    std::vector<ExchangeRate> rates(static_cast<std::size_t>(m));
    for (ExchangeRate& e : rates) std::cin >> e.from >> e.to >> e.rate;

    // Por hacer: buscar una cadena con producto mayor que 1, e imprimirla como pide el enunciado.
    std::cout << "NO\n";
}
