Identify the intermediate and terminal operations in the code.
double average = roster
.stream()
.filter(p -> p.getGender() == Person.Sex.MALE)
.mapToInt(Person::getAge)
.average()
.getAsDouble();
a) Intermediate: filter, mapToInt Terminal: average
b) Intermediate: filter Terminal: mapToInt, average
c) Intermediate:average Terminal: filter, mapToInt
d) Intermediate: filter, mapToInt Terminal: getAsDouble