#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <sstream>
#include <functional>
#include <map>

#define INPUT_FROM_FILE (0) 
#if INPUT_FROM_FILE
#include <fstream>
#endif


int main(){
	int q, com;
	std::string key;
	long x;
	std::multimap<std::string, long> m;
	std::string L, R;
	std::string buf;

#if INPUT_FROM_FILE
	std::ifstream ifs("test.txt");
#endif

#if INPUT_FROM_FILE
	ifs >> q;
#else
	std::cin >> q;
#endif
	
	for(int i = 0; i < q; i++){
#if INPUT_FROM_FILE
		ifs >> com;
#else
		std::cin >> com;
#endif
		if(com == 0){
#if INPUT_FROM_FILE
			ifs >> key >> x;
#else
			std::cin >> key >> x;
#endif
			m.emplace(key, x);
		}
		else if(com == 1){
#if INPUT_FROM_FILE
			ifs >> key;
#else
			std::cin >> key;
#endif
			auto p = m.equal_range(key);
			for(auto it = p.first; it != p.second; it++){
				std::cout << it->second << std::endl;
			}
		}
		else if(com == 2){
#if INPUT_FROM_FILE
			ifs >> key;
#else
			std::cin >> key;
#endif
			m.erase(key);
		}
		else{
#if INPUT_FROM_FILE
			ifs >> L >> R;
#else
			std::cin >> L >> R;
#endif
			std::map<std::string, long>::iterator it = m.lower_bound(L);
			std::map<std::string, long>::iterator end = m.upper_bound(R);
			for(; it != end; it++){
				std::cout << it->first << " " << it->second << std::endl;
			}
		}
	}
	return 0;
}
