/*
written by- Piyush Golani
language- c++
country- India
College- N.I.T Jamshedpur
*/
#include <cmath>
#include <ctime>
#include <iostream>
#include <string>
#include <vector>
#include<cstdio>
#include<sstream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<map>
#include<cctype>
#include<queue>
using namespace std;
#define pb push_back
#define all(s) s.begin(),s.end()
#define f(i,a,b) for(int i=a;i<b;i++)
#define F(i,a,b) for(int i=a;i>=b;i--)
#define PI 3.1415926535897932384626433832795
#define INF 1000000005
#define BIG_INF 7000000000000000000LL
#define mp make_pair
#define eps 1e-9
#define LL long long
#define si(n) scanf("%d",&n)
#define sll(n) scanf("%lld",&n)
#define mod 1000000007
#define vv pair<LL,int>
int main()
{
int t;
si(t);
while(t--)
{
int n,m,s,d;
si(n); si(m); si(s); si(d);
vector<vv> G[n+5];
int a,b,c;
f(i,0,m)
{
si(a); si(b); si(c);
G[a].pb(mp(b,c));
G[b].pb(mp(a,c));
}
bool visited[n+5];
memset(visited,false,sizeof(visited));
LL ans[n+1];
f(i,1,n+1)
{
ans[i]=INF;
}
ans[s]=0;
priority_queue<vv,vector<vv>,greater<vv> > Q;
Q.push(mp(0,s));
while(!Q.empty())
{
vv p=Q.top();
Q.pop();
if(visited[p.second]) continue;
visited[p.second]=true;
if(p.second==d)
{
printf("%lld\n",p.first);
break;
}
f(i,0,G[p.second].size())
{
int b=G[p.second][i].first;
int c=G[p.second][i].second;
if(!visited[b])
{
ans[b]=min(ans[b],ans[p.second]+c);
Q.push(mp(ans[b],b));
}
}
}
if(ans[d]==INF)
{
printf("NONE\n");
}
}
return 0;
}
LyoKd3JpdHRlbiBieS0gUGl5dXNoIEdvbGFuaQpsYW5ndWFnZS0gYysrCmNvdW50cnktIEluZGlhCkNvbGxlZ2UtIE4uSS5UIEphbXNoZWRwdXIKKi8KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxzc3RyZWFtPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGNzdGRsaWI+CiNpbmNsdWRlPGNzdHJpbmc+CiNpbmNsdWRlPG1hcD4KI2luY2x1ZGU8Y2N0eXBlPgojaW5jbHVkZTxxdWV1ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBhbGwocykgcy5iZWdpbigpLHMuZW5kKCkKI2RlZmluZSBmKGksYSxiKSBmb3IoaW50IGk9YTtpPGI7aSsrKQojZGVmaW5lIEYoaSxhLGIpIGZvcihpbnQgaT1hO2k+PWI7aS0tKQojZGVmaW5lIFBJIDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzgzMjc5NQojZGVmaW5lIElORiAxMDAwMDAwMDA1CiNkZWZpbmUgQklHX0lORiA3MDAwMDAwMDAwMDAwMDAwMDAwTEwKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBlcHMgMWUtOQojZGVmaW5lIExMIGxvbmcgbG9uZwojZGVmaW5lIHNpKG4pIHNjYW5mKCIlZCIsJm4pCiNkZWZpbmUgc2xsKG4pIHNjYW5mKCIlbGxkIiwmbikKI2RlZmluZSBtb2QgMTAwMDAwMDAwNwojZGVmaW5lIHZ2IHBhaXI8TEwsaW50PgoKCmludCBtYWluKCkKewogICAgaW50IHQ7CiAgICBzaSh0KTsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgICBpbnQgbixtLHMsZDsKICAgICAgICBzaShuKTsgc2kobSk7IHNpKHMpOyBzaShkKTsKICAgICAgICB2ZWN0b3I8dnY+IEdbbis1XTsKICAgICAgICBpbnQgYSxiLGM7CiAgICAgICAgZihpLDAsbSkKICAgICAgICB7CiAgICAgICAgICAgIHNpKGEpOyBzaShiKTsgc2koYyk7CiAgICAgICAgICAgIEdbYV0ucGIobXAoYixjKSk7CiAgICAgICAgICAgIEdbYl0ucGIobXAoYSxjKSk7CiAgICAgICAgfQogICAgICAgIGJvb2wgdmlzaXRlZFtuKzVdOwogICAgICAgIG1lbXNldCh2aXNpdGVkLGZhbHNlLHNpemVvZih2aXNpdGVkKSk7CiAgICAgICAgTEwgYW5zW24rMV07CiAgICAgICAgZihpLDEsbisxKQogICAgICAgIHsKICAgICAgICAgICAgYW5zW2ldPUlORjsKICAgICAgICB9CiAgICAgICAgYW5zW3NdPTA7CiAgICAgICAgcHJpb3JpdHlfcXVldWU8dnYsdmVjdG9yPHZ2PixncmVhdGVyPHZ2PiA+IFE7CiAgICAgICAgUS5wdXNoKG1wKDAscykpOwogICAgICAgIHdoaWxlKCFRLmVtcHR5KCkpCiAgICAgICAgewogICAgICAgICAgICB2diBwPVEudG9wKCk7CiAgICAgICAgICAgIFEucG9wKCk7CiAgICAgICAgICAgIGlmKHZpc2l0ZWRbcC5zZWNvbmRdKSBjb250aW51ZTsKICAgICAgICAgICAgdmlzaXRlZFtwLnNlY29uZF09dHJ1ZTsKICAgICAgICAgICAgaWYocC5zZWNvbmQ9PWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHByaW50ZigiJWxsZFxuIixwLmZpcnN0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGYoaSwwLEdbcC5zZWNvbmRdLnNpemUoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaW50IGI9R1twLnNlY29uZF1baV0uZmlyc3Q7CiAgICAgICAgICAgICAgICBpbnQgYz1HW3Auc2Vjb25kXVtpXS5zZWNvbmQ7CiAgICAgICAgICAgICAgICBpZighdmlzaXRlZFtiXSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBhbnNbYl09bWluKGFuc1tiXSxhbnNbcC5zZWNvbmRdK2MpOwogICAgICAgICAgICAgICAgICAgIFEucHVzaChtcChhbnNbYl0sYikpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZihhbnNbZF09PUlORikKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiTk9ORVxuIik7CiAgICAgICAgfQoKICAgIH0KICAgIHJldHVybiAwOwp9Cgo=