public static List<Node> bfsHelper(Node c, Queue<Edge> pq) {
		List<Node> rel=new ArrayList<>();
		Queue<Node> q=new ArrayDeque<>(); q.offer(c);
		Set<Node> v=new HashSet<>();
		while (!q.isEmpty()) {
			for (int i=0, n=q.size(); i<n;++i) {
				Node t=q.poll();
				for (Edge e: t.e) {
					Node to=e.a==t?e.b:e.b;
					if (!v.contains(to)) {
						pq.offer(e);
						v.add(to);
						q.offer(to);
						rel.add(to);
					}
				}
			}
		}
		return rel;
	}