public void merge(Pair p, int ind) {
		edges.remove(ind);
		/*int xxx = ind;
		while (xxx >= 0) {
			edges.remove(xxx);
			xxx = edges.indexOf(p);
		}*/
		Iterator<Pair> it = edges.iterator();
		while (it.hasNext()) {
			Pair n = it.next();
			if (p.v2 == n.v1 || p.v2 == n.v2) {
				if (p.v2 == n.v1) {
					int has = edges.indexOf(new Pair(p.v1, n.v2));
					if (has >= 0) {
						Pair existed = edges.get(has);
						existed.num += n.num;
						it.remove();
					} else {
						n.v1 = p.v1;
					}
				} else if (p.v2 == n.v2) {
					int has = edges.indexOf(new Pair(p.v1, n.v1));
					if (has >= 0) {
						Pair existed = edges.get(has);
						existed.num += n.num;
						it.remove();
					} else {
						n.v2 = p.v1;
					}
				}
			}
		}
	}