#include #include #include #include #define INF 100000000 #define max 101 using namespace std; int dp[10001]; int N,g[max][max]; int dis[max]; int pp[max]; int v[max]; void dijk() { int i,j,mindis,mark; for(i=0;i<=N;i++) { dis[i] = INF; v[i] = 0; } dis[0] = 0; v[0] = 1; for(i=0;i<=N;i++) { mark = 0; mindis = INF; for(j=0;j<=N;j++) { if(!v[j] && dis[j] < mindis) { mindis = dis[j]; mark = j; } } v[mark] = 1; for(j=0;j<=N;j++) { if(!v[j] && dis[j] > dis[mark] + g[mark][j]) { dis[j] = dis[mark] + g[mark][j]; } } } } int main() { int M,a,b,c,i,j,t,sum,MAX,MIN,sumdis; scanf("%d",&t); while(t--) { scanf("%d%d",&N,&M); for(i=0;i<=N;i++) for(j=0;j<=N;j++) { if(i==j)g[i][j] = 0; else g[i][j] = INF; } while(M--) { scanf("%d%d%d",&a,&b,&c); if(c=dis[i];j--) { if(dp[j] sum/2) break; } if(i == sumdis+1) printf("impossible\n"); else printf("%d\n",i); } }