Author:  A. Baranov  Time limit:  1 sec  
Input file:  input.txt  Memory limit:  256 Mb  
Output file:  output.txt 
You have a document that needs to be signed by university president. It's hard to get president's time, but luckily you know his current location in the university campus. You also know that he is heading to his office now, so you can try to intercept him on the way and ask for a signature. Even more, everyone at university knows that president always takes fastest path wherever he goes. However, if there are several fastest paths, the president chooses any of them.
You need to write a program that determines whether you can guarantee meeting the president no matter which of the fastest path he picks, if you start moving from your room at the same time as the president.
More formally, university campus map is given as an undirected graph. ith edge is given by its vertices (a_{i}, b_{i}) and traversal time t_{i} (this is a traversal time for any human, either you or the president). Initially, the president is located at vertex p_{1} and is taking one of the fastest paths to his office located at vertex f. You are initially located at vertex p_{2}. You can get the signature if you meet the president at vertex v such that:
Input file starts with two integers: n — the number of vertices and m — the number of edges.
Then m edges are given by integers a_{i}, b_{i}, t_{i}. Vertices are numbered starting from 0.
Finally, there are three integers f, p_{1}, and p_{2}.
Output file must contain the number of vertices where it is possible to get the signature, followed by the list of vertex numbers in ascending order.
It is guaranteed that the graph is connected, i.e. it's possible to get from any vertex to any other vertex.
There is no more than one edge between each pair of vertices (a_{i}, b_{i}).
2 ≤ n ≤ 1000, 1 ≤ m ≤ n(n − 1) / 2
0 ≤ a_{i}, b_{i}, p_{1}, p_{2}, f < n
a_{i} ≠ b_{i}, p_{1} ≠ p_{2}
0 < t_{i} ≤ 1000
No.  Input file (input.txt ) 
Output file (output.txt ) 

1 


2 

