public static void main(String[] args) {
		
		//0. Preprocess parameters
		if(args.length < 1 || args[0].isEmpty()) return;
		
		int playersSecondStage = 2; 
		if(args.length >= 2)
			try {
				playersSecondStage = Integer.parseInt(args[1]);
			} catch(NumberFormatException e) {
				System.err.println("Expected a positive number as second argument");
				return;
			}
		
		boolean verbose = false;
		if(args.length > 2 && args[2].equals("-v")) verbose = true;
		
		//1. Get information from file
		List<Group> l = FileReader.buildGroupsFromFile(args[0]);
		
		//2. Simulate group stage
		List<Team> bestTeams = new LinkedList<>();
		for(Group g: l) {
			
			List<Team> adv = g.simulateGroupStage(playersSecondStage, verbose, 90);
			
			System.out.print(g.getTeams().size() + " teams. Best teams from group " + g.getName() + " in Group stage: ");
			for(Team t: adv)
				System.out.print(t.getName() + ", ");
			System.out.println();
			
			bestTeams.addAll( adv );
		}
		
		//3. Simulate second stage
		Team win = WorldCup.simulateSecondStage(bestTeams, verbose, 90);
		
		System.out.println(win.getName());
		
		return;
	}