#include <cstdio>
#include <cstring>
#define maxn 1024
#define inf 2000000000
using namespace std;
struct muchie {
int x, y, z;
};
int n, m, i, j, k, p, u, a, b, cc;
int c[maxn][maxn];
int flux[maxn], up[maxn], q[maxn], futot;
int ok;
int m1[maxn], m2[maxn], tip[maxn];
muchie mu[10100];
void init() {
memset(flux, 0, sizeof(flux));
flux[1] = inf;
memset(up, -1, sizeof(up));
}
inline int min(int a, int b) {
if (a < b)
return a;
return b;
}
inline bool bfs() {
int nod, fiu, p, u;
p = u = 1;
q[1] = 1;
while (p <= u) {
nod = q[p];
for (fiu = 1; fiu <= n; fiu++)
if (flux[fiu] == 0 && c[nod][fiu] > 0) {
flux[fiu] = min(c[nod][fiu], flux[nod]);
up[fiu] = nod;
u++;
q[u] = fiu;
if (fiu == n) {
p = u + 1;
break;
}
}
p++;
}
if (!flux[n])
return false;
nod = n;
while (nod != 1) {
fiu = up[nod];
c[fiu][nod] -= flux[n];
c[nod][fiu] += flux[n];
nod = up[nod];
}
return true;
}
void bf1(int start) {
int nod, p, u;
int viz[maxn];
memset(viz, 0, sizeof(viz));
p = u = 1;
q[1] = start;
m1[1] = 1;
viz[1] = 1;
while (p <= u) {
nod = q[p];
tip[nod] = 1;
for (i = 1; i <= n; i++)
if (c[nod][i] > 0 && viz[i] == 0) {
m1[i] = 1;
viz[i] = 1;
u++;
q[u] = i;
}
p++;
}
}
void bf2(int start) {
int nod, p, u;
int viz[maxn];
memset(viz, 0, sizeof(viz));
p = u = 1;
q[1] = start;
m2[n] = 1;
while (p <= u) {
nod = q[p];
tip[nod] = 2;
for (i = 1; i <= n; i++)
if (c[i][nod] > 0 && viz[i] == 0) {
viz[i] = 1;
m2[i] = 1;
u++;
q[u] = i;
}
p++;
}
}
int main() {
freopen("critice.in", "r", stdin);
freopen("critice.out", "w", stdout);
scanf("%d%d", &n, &m);
for (i = 1; i <= m; i++) {
scanf("%d%d%d", &a, &b, &cc);
mu[i].x = a; mu[i].y = b; mu[i].z = cc;
c[a][b] = cc;
c[b][a] = cc;
}
ok = 1;
while (ok) {
init();
ok = bfs();
}
bf1(1);
bf2(n);
int nr = 0;
for (i = 1; i <= m; i++) {
int t1, t2;
t1 = mu[i].x; t2 = mu[i].y;
if (tip[t1] != 1) {
int aux = t1; t1 = t2; t2 = aux;
}
if (tip[t1] + tip[t2] == 3 && c[t1][t2] == 0 && c[t2][t1] != 0)
nr++;
}
printf("%d\n", nr);
for (i = 1; i <= m; i++) {
int t1, t2;
t1 = mu[i].x; t2 = mu[i].y;
if (tip[t1] != 1) {
int aux = t1; t1 = t2; t2 = aux;
}
if (tip[t1] + tip[t2] == 3 && c[t1][t2] == 0 && c[t2][t1] != 0)
printf("%d\n", i);
}
return 0;
}