public Problem107(){
		try {
			grid = new int[n][n];
			Scanner s = new Scanner(new File("data/network.txt"));
			s.useDelimiter(",|\\n");
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					String str = s.next();
					if(str.equals("-")){
						grid[i][j] = -1;
					}
					else{
						grid[i][j] = Integer.parseInt(str);
					}
				}
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		int oldsum = 0;
		for(int i = 0; i < n; i++){
			for(int j = i+1; j < n; j++){
				if(grid[i][j] > 0){
					oldsum += grid[i][j];
				}
			}
		}
		
		
		ArrayList<Edge> e = new ArrayList<Edge>();
		for(int i = 0; i < n; i++){
			for(int j = i+1; j < n; j++){
				if(grid[i][j] > 0){
					e.add(new Edge(i,j,grid[i][j]));
				}
			}
		}
		Collections.sort(e);
		Collections.reverse(e);
		System.out.println(e);
		
		for(int i = 0; i < e.size(); i++){
			Edge x = e.remove(i);
			grid[x.i][x.j] = -1;
			grid[x.j][x.i] = -1;
			if(!Connected()){
				e.add(i, x);
				grid[x.i][x.j] = x.v;
				grid[x.j][x.i] = x.v;
				System.out.println("Did not remove " + x);
				continue;
			}
			System.out.println("Removed " + x);
			i--;
		}
		
		int sum = 0;
		for(Edge i : e){
			sum += i.v;
		}
		System.out.println(oldsum + " - " + sum + " = " + (oldsum-sum));
	}