void ReadBids() throws IOException {
    /*  File Reading Stuff */
    FileReader input = new FileReader(_inputFile);
    // FileWriter output = new FileWriter(args[1]);
    /* Filter FileReader through a Buffered read to read a line at a time */
    BufferedReader bufRead = new BufferedReader(input);
    // BufferedWriter outp = new BufferedWriter(output);

    String line; // String that holds current file line

    /*Data Structures to Store Bids*/
    HashMap<Integer, BidData> Bids = new HashMap<Integer, BidData>();

    // Read first line
    line = bufRead.readLine();
    _minutes = Double.parseDouble(line);
    _stopTime = _startTime + (long) (_minutes * 60 * 1000);

    line = bufRead.readLine();
    line = bufRead.readLine();
    _regionCount = Integer.parseInt(line);

    line = bufRead.readLine();
    line = bufRead.readLine();
    _bidCount = Integer.parseInt(line);

    line = bufRead.readLine();
    line = bufRead.readLine();
    _companyCount = Integer.parseInt(line);

    line = bufRead.readLine();
    // Reading lines ending with a # (bids), and store in Bids
    Integer count = 0;
    while (line != null) {
      if (line.endsWith("#")) {
        String[] res = line.split(" ");
        BidData curbid = new BidData();
        curbid.company = Integer.parseInt(res[0]);
        curbid.value = Double.parseDouble(res[1]);
        curbid.region = new HashSet<Integer>();
        for (int k = 2; k < res.length - 1; k++) {
          curbid.region.add(Integer.parseInt(res[k]));
        }

        // store the bid
        curbid.regionCount = curbid.region.size();
        curbid.avgPerRegion = curbid.value / curbid.regionCount;
        Bids.put(count, curbid);
        count++;
      }
      line = bufRead.readLine();
    }
    bufRead.close();

    _bids = Bids;
  }