#include <cstdio>
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
int main(){
const int minLevel(100);
const double eps = 0.001;
int n, m; double k; std::cin >> n >> m >> k;
std::map<std::string, int> skillMap;
for(int p = 0; p < n; p++){
std::string currentSkill; int currentLevel;
std::cin >> currentSkill >> currentLevel;
if(k * currentLevel >= minLevel){skillMap.insert(std::pair<std::string, long>(currentSkill, eps + k * currentLevel));}
}
for(int p = 0; p < m; p++){
std::string currentSkill; std::cin >> currentSkill;
if(skillMap.find(currentSkill) == skillMap.end()){skillMap.insert(std::pair<std::string, long>(currentSkill, 0));}
}
std::vector<std::string> skillVec;
std::map<std::string, int>::iterator mapIter;
for(mapIter = skillMap.begin(); mapIter != skillMap.end(); mapIter++){skillVec.push_back(mapIter -> first);}
sort(skillVec.begin(), skillVec.end());
std::cout << skillVec.size() << std::endl;
for(int p = 0; p < skillVec.size(); p++){std::cout << skillVec[p] << " " << skillMap[skillVec[p]] << std::endl;}
return 0;
}
1657B - XY Sequence | 1009A - Game Shopping |
1657A - Integer Moves | 230B - T-primes |
630A - Again Twenty Five | 1234D - Distinct Characters Queries |
1183A - Nearest Interesting Number | 1009E - Intercity Travelling |
1637B - MEX and Array | 224A - Parallelepiped |
964A - Splits | 1615A - Closing The Gap |
4C - Registration System | 1321A - Contest for Robots |
1451A - Subtract or Divide | 1B - Spreadsheet |
1177A - Digits Sequence (Easy Edition) | 1579A - Casimir's String Solitaire |
287B - Pipeline | 510A - Fox And Snake |
1520B - Ordinary Numbers | 1624A - Plus One on the Subset |
350A - TL | 1487A - Arena |
1520D - Same Differences | 376A - Lever |
1305A - Kuroni and the Gifts | 1609A - Divide and Multiply |
149B - Martian Clock | 205A - Little Elephant and Rozdil |