#include<map>
#include<set>
#include<list>
#include<cmath>
#include<queue>
#include<stack>
#include<cstdio>
#include<string>
#include<vector>
#include<complex>
#include<cstdlib>
#include<cstring>
#include<numeric>
#include<sstream>
#include<iostream>
#include<algorithm>
#include<functional>

#define mp       make_pair
#define pb       push_back
#define all(x)   (x).begin(),(x).end()
#define rep(i,n) for(int i=0;i<(n);i++)
#define REP(i,b,n) for(int i=b;i<n;i++)

using namespace std;

typedef    long long          ll;
typedef    unsigned long long ull;
typedef    vector<bool>       vb;
typedef    vector<int>        vi;
typedef    vector<vb>         vvb;
typedef    vector<vi>         vvi;
typedef    pair<int,int>      pii;

const int INF=1<<29;
const double EPS=1e-9;

const int dx[]={1,0,-1,0},dy[]={0,-1,0,1};
map<int,int> ma,mb;
int main(){
	int a,b;
	string str;
	while(getline(cin,str),str.size()!=0){
		stringstream ss;
		rep(i,str.size()){
			if(str[i]==',')str[i]=' ';
		}
		ss<<str;
		ss>>a;
		ma[a]++;
	}
	while(scanf("%d,%d",&a,&b)!=EOF){
		if(ma[a]!=0){
			if(mb[a]==0){
				mb[a] = ma[a];
			}
			mb[a]++;
		}
	}
	map<int,int>::iterator it = mb.begin();
	while(it!=mb.end()){
		cout <<it->first<<" "<<it->second<<endl;
		it++;
	}

	return 0;
}