public static void printMonsters(ArrayList<Monster> monsters){
    ArrayList<String[]> monsterNames = new ArrayList<String[]>();
    for (int i = 0; i < monsters.size(); i++){
      monsterNames.add(new String[]{monsters.get(i).toString(), monsters.get(i).toPluralString()});
    }
    ArrayList<String[]> names = new ArrayList<String[]>();
    ArrayList<Integer> number = new ArrayList<Integer>();
    while(monsterNames.size() > 0) {
      String[] current = monsterNames.remove(0);
      boolean exists = false;
      for(int i = 0; i < names.size(); i++) {
        if(names.get(i)[0].equals(current[0])) {
          number.set(i, number.get(i) + 1);
          exists = true;
        }
      }
      if(!exists) {
        names.add(current);
        number.add(1);
      }
    }

    for(int j = 0; j < names.size(); j++) {
      if(number.get(j) == 1) {
        out.println("1 " + names.get(j)[0]);
      }
      else {
        out.println(Integer.toString(number.get(j)) + " " + names.get(j)[1]);
      }
    }
  }