#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
typedef string AnsiString;
typedef std::pair<int, AnsiString> IntStringPair;
typedef std::pair<int, IntStringPair> EdProgPair;
typedef std::map<int, IntStringPair> EdProgramMap;

struct EditAchievementRow
{
	int id_edform_ ;
};

class UnaryPredicate {
public:
	UnaryPredicate(const EditAchievementRow& ear)
		: ear_(ear) {}
	bool operator()(const EdProgPair& epp)
	{
		return epp.second.first == ear_.id_edform_;
	}
private:
	EditAchievementRow ear_;
};

int main() {
	// your code goes here
	EdProgramMap edprogrammap_;
	EditAchievementRow ear_;

	EdProgramMap::const_iterator citer;

	citer = std::find_if(
		edprogrammap_.begin(),
		edprogrammap_.end(),
		UnaryPredicate(ear_)
		);
	int rrr;
	if (citer != edprogrammap_.end())
		rrr = (*citer).first;
	
	return 0;
}