public static void dfs(Node cur, boolean div, int acum, int level) {
		acum += div ? 1 : 0;
		Stack<Integer> s = new Stack<>();
		for (int i = 0; i < cur.map.length; i++)
			if (cur.map[i] != null)
				s.push(i);
		if (cur.finish)
			ans += acum;
		if (s.size() > 1)
			while (!s.isEmpty())
				dfs(cur.map[s.pop()], true, acum, level + 1);
		else if (s.size() == 1)
			dfs(cur.map[s.pop()], cur.finish || level == 0, acum, level + 1);

	}