private void dfs(Graph G, int v)
	{
		marked[v] = true;

		for (int w : G.adj(v))
			if (!marked[w])
			{
				color[w] = !color[v];
				dfs(G, w);
			}
			else
			{
				if (color[w] == color[v])
					isBipartite = false;
			}
	}