#include<iostream>
#include<list>
#include<string.h>
using namespace std;
#define MAXI 1000000000
class Graph{
int v;
list<pair<int,int> > *adj;
void dfsUtil(int s,int *path);
public:
Graph(int v);
void addEdge(int u,int v,int w);
void dfs(int s,int d);
};
Graph::Graph(int v){
this->v=v;
adj= new list<pair<int,int> >[v+1];
}
void Graph:: addEdge(int u,int v,int w){
adj[u].push_back(make_pair(v,w));
adj[v].push_back(make_pair(u,w));
}
void Graph::dfsUtil(int s,int *path){
int cost;
list<pair<int,int> > ::iterator i;
for(i=adj[s].begin();i!=adj[s].end();i++){
cost= path[s] | (*i).second;
if(cost<path[(*i).first]){
path[(*i).first]=cost;
dfsUtil((*i).first,path);
}
}
}
void Graph::dfs(int s,int d){
bool *visited= new bool[v+1];
memset(visited,false,v+1);
int path[v+1];
for(int i=0;i<v+1;i++){
path[i]=MAXI;
}
path[s]=0;
dfsUtil(s,path);
if(path[d]==MAXI)
cout << "-1" << endl;
else
cout << path[d] <<endl;
}
int main(){
int n,m,temp,temp2,temp3;
cin >> n>>m;
Graph g(n);
for(int i=0;i<m;i++){
cin >> temp>>temp2>>temp3;
g.addEdge(temp,temp2,temp3);
}
cin >> temp>>temp2;
g.dfs(temp,temp2);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGxpc3Q+CiNpbmNsdWRlPHN0cmluZy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBNQVhJIDEwMDAwMDAwMDAKCmNsYXNzIEdyYXBoewogICAgaW50IHY7CiAgICBsaXN0PHBhaXI8aW50LGludD4gPiAqYWRqOwoKICAgIHZvaWQgZGZzVXRpbChpbnQgcyxpbnQgKnBhdGgpOwoKICAgIHB1YmxpYzoKICAgIEdyYXBoKGludCB2KTsKICAgIHZvaWQgYWRkRWRnZShpbnQgdSxpbnQgdixpbnQgdyk7CiAgICB2b2lkIGRmcyhpbnQgcyxpbnQgZCk7Cn07CgpHcmFwaDo6R3JhcGgoaW50IHYpewogIHRoaXMtPnY9djsKICBhZGo9IG5ldyBsaXN0PHBhaXI8aW50LGludD4gPlt2KzFdOwp9Cgp2b2lkIEdyYXBoOjogYWRkRWRnZShpbnQgdSxpbnQgdixpbnQgdyl7CiAgYWRqW3VdLnB1c2hfYmFjayhtYWtlX3BhaXIodix3KSk7CiAgYWRqW3ZdLnB1c2hfYmFjayhtYWtlX3BhaXIodSx3KSk7Cn0KCiAgdm9pZCBHcmFwaDo6ZGZzVXRpbChpbnQgcyxpbnQgKnBhdGgpewogCiAgICAgICAgICAgaW50IGNvc3Q7CiAgICAgICAgIGxpc3Q8cGFpcjxpbnQsaW50PiA+IDo6aXRlcmF0b3IgaTsKICAgICAgICAgZm9yKGk9YWRqW3NdLmJlZ2luKCk7aSE9YWRqW3NdLmVuZCgpO2krKyl7CiAgICAgCiAgICAgICAgICAgIGNvc3Q9IHBhdGhbc10gfCAoKmkpLnNlY29uZDsKICAKICAgICAgICAgICAgaWYoY29zdDxwYXRoWygqaSkuZmlyc3RdKXsKICAgICAgICAgICAgICAgIHBhdGhbKCppKS5maXJzdF09Y29zdDsKICAgICAgICAgICAgZGZzVXRpbCgoKmkpLmZpcnN0LHBhdGgpOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICB9CgogIHZvaWQgR3JhcGg6OmRmcyhpbnQgcyxpbnQgZCl7CiAgICAgYm9vbCAqdmlzaXRlZD0gbmV3IGJvb2xbdisxXTsKICAgICBtZW1zZXQodmlzaXRlZCxmYWxzZSx2KzEpOwogICAgIGludCBwYXRoW3YrMV07CgogICBmb3IoaW50IGk9MDtpPHYrMTtpKyspewogICAgcGF0aFtpXT1NQVhJOwogICB9CiAgICAgcGF0aFtzXT0wOwoKICAgICBkZnNVdGlsKHMscGF0aCk7CgogICAgIGlmKHBhdGhbZF09PU1BWEkpCiAgICAgICAgY291dCA8PCAiLTEiIDw8IGVuZGw7CiAgICAgIGVsc2UKICAgICAgICAgICAgY291dCA8PCBwYXRoW2RdIDw8ZW5kbDsKCiAgfQoKaW50IG1haW4oKXsKIGludCBuLG0sdGVtcCx0ZW1wMix0ZW1wMzsKIGNpbiA+PiBuPj5tOwogIEdyYXBoIGcobik7CgogIGZvcihpbnQgaT0wO2k8bTtpKyspewogICAgICBjaW4gPj4gdGVtcD4+dGVtcDI+PnRlbXAzOwogICAgICBnLmFkZEVkZ2UodGVtcCx0ZW1wMix0ZW1wMyk7CiAgfQoKICBjaW4gPj4gdGVtcD4+dGVtcDI7CiAgICBnLmRmcyh0ZW1wLHRlbXAyKTsKCiByZXR1cm4gMDsKfQo=