public static void main(String[] args)
	{
		Digraph G = null;
		try
		{
			G = new Digraph(new In(args[0]));
			System.out.println(args[0] + "\n" + G);
			
		}
		catch (Exception e)
		{
			System.out.println(e);
			System.exit(1);
		}

		System.out.print("Source vertices : ");
		List<Integer> sources = new LinkedList<Integer>();
		for (int i = 1; i < args.length; i++)
		{
			System.out.println(args[i]);
			sources.add(Integer.parseInt(args[i]));
		}

		DirectedDFS reachable = new DirectedDFS(G, sources);

		System.out.print("Reachable vertices :");
		for (int v = 0; v < G.V(); v++)
			if (reachable.marked(v))
				System.out.print(v + " ");
		System.out.println();
	}