#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
 
class Person
{
	string first;
    string last;
    int age;
 
public:
	Person(string first_name, string last_name, int the_age);
 
	string getFirstName() const { return first; }
	string getLastName() const { return last; }
    int getAge() const { return age; }
};
 
Person::Person(string first_name, string last_name, int the_age){
	first = first_name;
	last = last_name;
	age = the_age;
} 
 
int main()
{
	vector<Person> people;
	people.emplace_back("Joe", "Smoe", 25);
	people.emplace_back("John", "Cool-Johnson", 15);
	people.emplace_back("Paul", "Bob", 1000);

	auto max_name = max_element(
	    people.begin(), people.end(),
    	[](const Person &a, const Person &b){
	        return a.getFirstName().size() < b.getFirstName().size();
    	}
	)->getFirstName().size();

	cout << max_name;

	return 0;
}