import java.awt.*;
import java.util.*;
public class Charles { 

  public static int ctr=0, innerCtr=0;
  
   public static int tries=10; 
   public static int invalid=0; 
   
   public static int improper=3;
 public static Random random1,random2,random3;
 
 public static int[] input= new int[3];
 public static int[] r = new int[3];
 public static boolean[] RisAvailable = new boolean[3];  // will be used to compare
 public static boolean[] IisAvailable = new boolean[3]; // if random # or input is already counted as 
 															// improper or invalid
 													
 															
 															
  public static Scanner console = new Scanner(System.in);   
   public static void main(String[] args)
   
   {   
   
  int CTRmax=tries; 
  
  random1 = new Random();
  random2 = new Random();
  random3 = new Random();
  
  r[0]=random1.nextInt(5)+1; //random of 1-5
  r[1]=random1.nextInt(5)+1;
  r[2]=random1.nextInt(5)+1;

 
  int[] instanceCtr = new int[5]; 

 
 for(ctr=0; ctr<CTRmax; ctr++){

	// reinitialization here:

 invalid=3; // <- set to "3", kung di proper at improper then invalid; 
 improper=0;	//	if proper or improper then invalid--;
 
  
  RisAvailable[0]=true;
  RisAvailable[1]=true;
  RisAvailable[2]=true;
  IisAvailable[0]=true;
  IisAvailable[1]=true;
  IisAvailable[2]=true;


	// input here

 System.out.println("\nInput 1st Number : ");
 try {
 input[0]=Integer.parseInt(console.nextLine());
 } catch(NumberFormatException e){ input[0]=0; }   // if char -> input ==0
 
 System.out.println("\nInput 2nd Number : ");
 try {
 input[1]=Integer.parseInt(console.nextLine());
 } catch(NumberFormatException e){ input[1]=0; }
 	
 System.out.println("\nInput 3rd Number : ");
   try {
   input[2]=Integer.parseInt(console.nextLine());}
   catch(NumberFormatException e){	input[2]=0;	}

   
  for(int ctr2=0;ctr2 < 3 ; ctr2++)               // counts PROPER and decrease INVALID 
	{
  		if(input[ctr2]==r[ctr2])
		{
			RisAvailable[ctr2]=false;
			IisAvailable[ctr2]=false;
			invalid--;
		}
	}		
  
  for(innerCtr=0;innerCtr < 3 ; innerCtr++)         // counts IMPROPER and decrease INVALID    
 	{
 		if(RisAvailable[innerCtr]==true)
		{
		    for(int ctr2=0; ctr2<3; ctr2++)
			{
				if(IisAvailable[ctr2]==true){
				if(r[innerCtr]==input[ctr2] && innerCtr!=ctr2){
					improper++; invalid--;
					RisAvailable[innerCtr]=false;
					IisAvailable[ctr2]=false;
					break;
				}}
			}
		}
	}
	
	
     tries--; 
     
            
   System.out.println("\nTries Left : "+ tries );
   System.out.println("Invalid : "+ invalid );
   System.out.println("Improper : "+ improper );   
   
		   if(invalid==0 && improper==0)
		   {
		  System.out.println("\n");
		  System.out.println("Congrats, you got it!!");
		   System.out.println("The random numbers are : ");
		   System.out.println(r[0] + " " + r[1] + " " + r[2]);
		    System.exit(0);
		   }
   }
 
   System.out.println("\n");
   System.out.println("GAME OVER.. You lose, The random numbers are : ");
   System.out.println(r[0] + " " + r[1] + " " + r[2]);
   
   }
}
    
