import java.util.ArrayList;
import java.util.Random;

class Ticket
{
    private final static ArrayList<Integer> usedSerialNums = new ArrayList<Integer>( );

    public Ticket( )
    {
        while( true )
        {
            int s = generator.nextInt( 5 );

            if( usedSerialNums.contains( s ) )
                continue;

            serialNum = s;
            usedSerialNums.add( s );
            return;
        }
    }

    public static ArrayList<Integer> getActiveNumbers( )
    {
        // only manipulate shared (static) data unless you provide another object
        return usedSerialNums;
    }

    public int getSerialNum( )
    {
        return serialNum;
    }

    public String toString( )
    {
        return "Ticket #" + getSerialNum( );
    }

    private int serialNum;
    private Random generator = new Random( );
}

public class Day05
{

    public static void main( String [] args )
    {
        System.out.println( Ticket.getActiveNumbers( ) );

        Ticket t1 = new Ticket( );
        Ticket t2 = new Ticket( );
        Ticket t3 = new Ticket( );

        System.out.println( t1 );
        System.out.println( t2 );
        System.out.println( t3 );

        System.out.println( Ticket.getActiveNumbers( ) );
    }
}
