import java.util.*;
import java.util.concurrent.*;

public class Ts2 extends Thread {
    private Barrier2 barrier ; 
    private int Speed ; 
    private int id ; 

    public Ts2(Barrier2 br, int sp, int idn) {
        barrier = br ;
        Speed = sp ; 
        id = idn ;
    }

    public void run() {
        while (true) {
           System.out.println("Thread "+id+ " reaching the barrier...") ; 

           try { Thread.sleep(Speed + (int)(Math.random()*1000)) ; }
           catch (InterruptedException e) {}

           System.out.println("Thread "+id+ " reached barrier!") ; 

           try { barrier.sync() ; }
           catch (InterruptedException e) {} 

        }
    }
}