private void loadInputData() {
        men = new ArrayList<Person>();
        women = new ArrayList<Person>();
        try {
            FileInputStream fstream = new FileInputStream("input-indifference.tsv");
            DataInputStream in = new DataInputStream(fstream);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String strLine;
            Map<String, Person> peopleMap = new HashMap<String, Person>();
            Map<Person, List<String>> preferencesMap = new HashMap<Person, List<String>>();
            while ((strLine = br.readLine()) != null) {
                String[] split = strLine.split("\t");
                String personName = split[0];
                List<String> personPreferences = new ArrayList<String>();
                for(int i = 1; i < split.length; i++) {
                    personPreferences.add(split[i]);
                }
                Person.Gender gender;
                // define o genero da pessoa: homem, mulher ou indefinido :)
                if(personName.startsWith("m")) {
                    gender = Person.Gender.MAN;
                }
                else if(personName.startsWith("w")) {
                    gender = Person.Gender.WOMAN;
                }
                else {
                    gender = Person.Gender.UNDEFINED;
                }
                Person person = new Person(personName, gender);
                // dependendo do genero da pessoa, adicionamos na lista de homens ou mulheres
                if(person.getGender() == Person.Gender.MAN) {
                    men.add(person);
                }
                else {
                    women.add(person);
                }
                peopleMap.put(personName, person);
                preferencesMap.put(person, personPreferences);
            }
            // este for eh necessario para mapear strings em objetos Person
            for(Person p : preferencesMap.keySet()) {
                List<List<Person>> listPreferences = new ArrayList<List<Person>>();
                for(int i = 0; i < preferencesMap.get(p).size(); i++) {
                    List<Person> internalList = new ArrayList<Person>();
                    String[] peopleInPos = preferencesMap.get(p).get(i).split(",");
                    for(String person : peopleInPos) {
                        internalList.add(peopleMap.get(person));
                    }
                    listPreferences.add(i, internalList);
                }
                p.setPreferences(listPreferences);
            }
            in.close();
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }