#include <bits/stdc++.h>
using namespace std;
struct edges {
  int id, u, v, w;
  bool operator<(const edges &ee) const { return w < ee.w; }
};
struct edges e[100010], st[100010];
vector<struct edges> tree[100010];
int f[100010], n, m, ans[100010], stp;
void init() {
  for (int i = 0; i < m; i++) {
    scanf("%d %d %d", &e[i].u, &e[i].v, &e[i].w);
    e[i].id = i;
    ans[i] = -1;
  }
  for (int i = 1; i <= n; i++) tree[i].clear();
  sort(e, e + m);
}
int find(int x) {
  int tmp = x;
  while (f[tmp] > 0) tmp = f[tmp];
  if (tmp != x) f[x] = tmp;
  return tmp;
}
void kruskal() {
  for (int i = 1; i <= n; i++) f[i] = -1;
  int left = n, p = 0, f1, f2, longest = 0;
  stp = 0;
  while (true) {
    f1 = find(e[p].u);
    f2 = find(e[p].v);
    if (f1 != f2) {
      ans[e[p].id] = 1;
      longest = e[p].w;
      f[f1] = f2;
      tree[e[p].u].push_back(e[p]);
      tree[e[p].v].push_back(e[p]);
      left--;
      if (left == 1) {
        p++;
        break;
      }
    } else
      st[stp++] = e[p];
    p++;
  }
  while (e[p].w == longest && p < m) {
    st[stp++] = e[p];
    p++;
  }
}
int dfn[100010], id;
int stfind(int w) {
  int l = 0, r = stp - 1, mid, i;
  while (r - l > 10) {
    mid = (l + r) >> 1;
    if (st[mid].w < w)
      l = mid + 1;
    else
      r = mid;
  }
  for (i = l; st[i].w != w && i <= r; i++)
    ;
  if (i > r) return stp;
  for (; st[i].w == w && st[i - 1].w == w; i--)
    ;
  return i;
}
void judge(int num, struct edges &edge) {
  for (int it = stfind(edge.w);; it++) {
    if (st[it].w != edge.w || it >= stp) break;
    if ((dfn[st[it].u] >= num && dfn[st[it].v] < num) ||
        (dfn[st[it].u] < num && dfn[st[it].v] >= num)) {
      ans[edge.id] = 0;
      ans[st[it].id] = 0;
    }
  }
}
void dfs(int u, int father) {
  dfn[u] = id++;
  int size = tree[u].size(), v, f;
  for (int i = 0; i < size; i++) {
    if (tree[u][i].u == u)
      v = tree[u][i].v;
    else
      v = tree[u][i].u;
    if (v == father) {
      f = i;
      continue;
    }
    dfs(v, u);
  }
  if (father != 0) judge(dfn[u], tree[u][f]);
}
int main() {
  while (scanf("%d %d", &n, &m) != EOF) {
    init();
    kruskal();
    for (int i = 1; i <= n; i++) dfn[i] = -1;
    id = 1;
    dfs(1, 0);
    for (int i = 0; i < m; i++) {
      if (ans[i] == -1)
        printf("none\n");
      else if (ans[i] == 0)
        printf("at least one\n");
      else
        printf("any\n");
    }
  }
  return 0;
}
