#include <bits/stdc++.h>
using namespace std;
unsigned long long mod = 1000000007;
int main() {
  string me;
  cin >> me;
  int n;
  cin >> n;
  string s;
  map<string, int> m;
  vector<string> names, temp(5, "");
  vector<int> points;
  cin.get();
  for (int i = 0; i < n; i++) {
    getline(cin, s);
    stringstream ss1;
    ss1 << s;
    ss1 >> temp[0] >> temp[1];
    stringstream ss;
    ss << s;
    if (temp[1] == "likes") {
      ss >> temp[0] >> temp[1] >> temp[2] >> temp[3];
      temp[2].erase((int)temp[2].size() - 2, 2);
    } else {
      ss >> temp[0] >> temp[1] >> temp[2] >> temp[3] >> temp[4];
      temp[3].erase((int)temp[3].size() - 2, 2);
    }
    if (temp[1] == "posted") {
      if (temp[3] != me and temp[0] == me)
        m[temp[3]] += 15;
      else if (temp[0] != me and temp[3] == me)
        m[temp[0]] += 15;
      else
        m[temp[0]] += 0, m[temp[3]] += 0;
    } else if (temp[1] == "commented") {
      if (temp[3] != me and temp[0] == me)
        m[temp[3]] += 10;
      else if (temp[0] != me and temp[3] == me)
        m[temp[0]] += 10;
      else
        m[temp[0]] += 0, m[temp[3]] += 0;
    } else {
      if (temp[2] != me and temp[0] == me)
        m[temp[2]] += 5;
      else if (temp[0] != me and temp[2] == me)
        m[temp[0]] += 5;
      else
        m[temp[0]] += 0, m[temp[2]] += 0;
    }
  }
  for (map<string, int>::iterator it = m.begin(); it != m.end(); it++) {
    points.push_back((*it).second);
    names.push_back((*it).first);
  }
  int sz = points.size();
  for (int i = 0; i < sz - 1; i++)
    for (int j = i + 1; j < sz; j++) {
      if (points[j] > points[i]) {
        swap(points[i], points[j]);
        swap(names[i], names[j]);
      } else if (points[i] == points[j] and names[j] < names[i]) {
        swap(points[i], points[j]);
        swap(names[i], names[j]);
      }
    }
  for (int i = 0; i < sz; i++) cout << names[i] << "\n";
  return 0;
}
