public int[][] parseHCP() {
		boolean success = false;

		// Keep trying if file not found
		while (!success) {
			System.out.print("Enter filename (or 000 to exit): ");
			this.file = in.nextLine();

			if (file.trim().equals("000")) {
				System.out.println("Program Terminated");
				System.exit(0);
			}
			try {
				// Input file
				in = new Scanner(new File("src/HCPFiles/" + this.file + ".hcp"));

				success = true;
				String line = in.nextLine();

				// Skip to Dimension
				while (!(line.contains("DIMENSION"))) {
					line = in.nextLine();
				}

				String[] parts = line.split(" ");
				int dimension = Integer.parseInt(parts[2]);
				int[][] out = new int[dimension][dimension];

				for (int i = 0; i < dimension; i++)
					for (int j = 0; j < dimension; j++)
						out[i][j] = 2;

				// Skip to Edge Data
				while (!(line.equals("EDGE_DATA_SECTION"))) {
					line = in.nextLine();
				}

				// Begin reading Edge Data
				while (!(line.equals("EOF"))) {
					line = in.nextLine();
					if (line.equals("-1"))
						break;

					// Split into pieces
					parts = line.split(" ");
					out[Integer.parseInt(parts[1]) - 1][Integer
							.parseInt(parts[0]) - 1] = 1;
					out[Integer.parseInt(parts[0]) - 1][Integer
							.parseInt(parts[1]) - 1] = 1;
				}
				return out;
			} catch (IOException e) {
				System.err.println("Caught IOException: " + e.getMessage());
				System.out.println();
			} // Catch
		} // While
		return null;
	} // Parse HCP