// Diseñar una red: lee los tramos e imprime -1. Reemplacen el cálculo.
#include <cstddef>
#include <iostream>
#include <vector>

struct Link {
    int a;
    int b;
    int cost;
};

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int n = 0;
    int m = 0;
    std::cin >> n >> m;
    std::vector<Link> links(static_cast<std::size_t>(m));
    for (Link& link : links) {
        std::cin >> link.a >> link.b >> link.cost;
    }

    // Por hacer: calcular el costo mínimo, o imprimir IMPOSIBLE.
    std::cout << -1 << '\n';
}
