#include <iostream>
#include <string>
#include <map>

bool insert( const std::string &key , const int value , std::map<std::string , int> &m );

int main()
{
	// your code goes here
	std::map<std::string,int> m;
	m["apple"] = 1;
	m["grape"] = 2;
	
	insert( "orange" , 1 , m );
		
	insert( "apple" , 3 , m );
		
	insert( "orange" , 3 , m );
		
	for( const auto &it : m )
		std::cout << it.first << " = " << it.second << std::endl;
	return 0;
}

bool insert( const std::string &key , const int value , std::map<std::string , int> &m )
{
	bool found = false;
	if( m.find(key) != m.end() )
	{
		found = true;
	}
	else
	{
		for( const auto &it : m ) //for( std::map<std::string,int>::iterator it = m.begin() , it != m.end(); ++it )
		{
			if( it.second == value )
			{
				found = true;
			}
		}
	}
	
	if( !found )
	{
		m[key] = value;
		std::cout << "The item was added" << std::endl;
	}
	else
	{
		std::cout << "The item was not added" << std::endl;
	}
		
	return( found );
}