#include<iostream>
#include<map>
using namespace std;
int main(){
	multimap<string, int>m;
	int q;
	cin>>q;
	while(q--){
		int c;
		string k;
		cin>>c>>k;
		if(c==0){
			int x;
			cin>>x;
			m.insert(make_pair(k,x));
		}
		else if(c==1){
			if(m.find(k)==m.end())
				cout<<0<<endl;
			else
				cout<<m[k]<<endl;
		}
		else if(c==2){
			m.erase(k);
		}
		else if(c==3){
			string y;
			cin>>y;
			map<string, int>::iterator i;
			for(i=m.lower_bound(k); i!=m.upper_bound(y); i++)
				cout<<(*i).first<<" "<<(*i).second<<endl;
		}
	}
	return 0;
}
