#include <iostream>
#include <map>
#include <cstring>
using namespace std;

class ItemName
{
	char name[80];
public:
	ItemName(char *s) { strcpy(name, s); }
	char *get() { return name; }
};

bool operator<(ItemName a, ItemName b)
{
	return strcmp(a.get(), b.get()) < 0;
}

class ItemObj
{
	char str[80];
public:
	ItemObj(char *s) { strcpy(str, s); }
	char *get() { return str; }
};

char itemdata[][80] = {
	"potion", "heal HP",
	"key", "unlock a door",
	"lamp", "light",
};


int main() {
	map<ItemName, ItemObj> items;
	
	for(int i=0; i<3; i++) {
		items.insert(
				pair<ItemName, ItemObj>(
					ItemName(itemdata[i*2]),
					ItemObj(itemdata[i*2+1])));	// ***** pair *****
					
	}
	
	map<ItemName, ItemObj>::iterator p;
	
	char str[80];
	const int kMaxLoop = 5;
	int nLoop = 0;
	while(nLoop < kMaxLoop) {
		cout << "> ";
		cin >> str;
		p = items.find(str);
		if(p != items.end() ) {
			cout << p->second.get() << endl;
		} else {
			cout << "unknown item." << endl;
		}
		nLoop++;
	}
	
	return 0;
}