#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void smax(T &x, T y) {
  x = max((x), (y));
}
template <class T>
inline void smin(T &x, T y) {
  x = min((x), (y));
}
const long long OO = 2e18;
const double pi = 2 * acos(0.0);
bool isprime(long long int a) {
  if (a == 1) {
    return false;
  }
  for (int i = 2; i * i <= a; i++) {
    if (a % i == 0) {
      return false;
    }
  }
  return true;
}
bool iscoprime(int a, int b) {
  int i;
  for (i = 2; i <= min(a, b); i++) {
    if (a % i == 0 && b % i == 0) {
      return false;
    }
  }
  return true;
}
long long gcd(long long a, long long b) {
  if (b == 0) {
    return a;
  } else {
    return gcd(b, a % b);
  }
}
int maxA(vector<int> a) {
  int m = 0;
  for (int i = 0; i < a.size(); i++) {
    m = max(m, a[i]);
  }
  return m;
}
int minA(vector<int> a) {
  int m = 100000;
  for (int i = 0; i < a.size(); i++) {
    m = min(m, a[i]);
  }
  return m;
}
vector<int> freqN(vector<int> a, int n) {
  vector<int> f(n);
  f = {0};
  for (int i = 0; i < a.size(); i++) {
    f[a[i]]++;
  }
  return f;
}
vector<int> freqA(vector<int> a) {
  vector<int> f(26);
  f = {0};
  for (int i = 0; i < a.size(); i++) {
    f[a[i] - '0']++;
  }
  return f;
}
bool mycomp(const pair<long int, long int> &p1,
            const pair<long int, long int> &p2) {
  if (p1.second < p2.second)
    return true;
  else if (p1.second == p2.second)
    return p1.first < p2.first;
  else
    return false;
}
unsigned int rightmostsetbit(unsigned int n) { return n & -n; }
bool cmp(pair<string, int> &p1, pair<string, int> &p2) {
  if (p1.second == p2.second) return p1.first < p2.first;
  return p1.second > p2.second;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  string name;
  cin >> name;
  int n, i, j;
  cin >> n;
  string name1, act, temp, temp2, name2;
  vector<pair<string, int>> a(2 * n);
  for (i = 0; i < 2 * n; i++) {
    a[i].second = 0;
  }
  int z = 0;
  for (i = 0; i < n; i++) {
    cin >> name1;
    cin >> act;
    if (act == "posted" || act == "commented") {
      cin >> temp;
    }
    cin >> name2;
    name2 = name2.substr(0, name2.length() - 2);
    cin >> temp2;
    int value;
    if (act == "posted")
      value = 15;
    else if (act == "commented")
      value = 10;
    else
      value = 5;
    if (name1 == name) {
      a[z].first = name2;
      a[z].second += value;
      z++;
    } else if (name2 == name) {
      a[z].first = name1;
      a[z].second += value;
      z++;
    } else {
      a[z].first = name1;
      a[z].second += 0;
      z++;
      a[z].first = name2;
      a[z].second += 0;
      z++;
    }
  }
  for (i = 0; i < 2 * n; i++) {
    for (j = i + 1; j < 2 * n; j++) {
      if (a[i].first == a[j].first) {
        a[j].first = "#";
        a[i].second += a[j].second;
      }
    }
  }
  sort(a.begin(), a.end(), cmp);
  for (i = 0; i < 2 * n; i++) {
    if (a[i].first != "#" && a[i].first.size() != 0) cout << a[i].first << endl;
  }
}
