#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define pi pair<int, int>
#define pii pair<pi, int>
#define max(...)                                                               \
  ([](auto &&...args) { return (std::max)({args...}); }(__VA_ARGS__))
#define forp(var, start, end)                                                  \
  for (int var = (start); (start) < (end) ? var < (end) : var > (end);         \
       (start) < (end) ? var++ : var--)
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, m, v;
  cin >> n >> m >> v;
  map<int, int> mm;
  int a, b;
  char c;
  cin >> a >> c >> b;
  if (c == '<') {
    mm.insert({a, 1});
    mm.insert({b, 2});
  } else {
    mm.insert({a, 1});
    mm.insert({b, 1});
  }
  forp(i, 0, v - 1) {
    int a, b;
    char c;
    cin >> a >> c >> b;
    if (mm.find(a) != mm.end()) {
      if (c == '<') {
        mm.insert({b, mm[a] + 1});
      } else {
        mm.insert({b, mm[a]});
      }
    } else if (mm.find(b) != mm.end()) {
      if (c == '<') {
        mm.insert({a, mm[b] - 1});
      } else {
        mm.insert({a, mm[b]});
      }
    }
  }
  int cccc = 1;
  int off = 1 - (*mm.begin()).second;
  forp(i, 1, m + 1) {
    if (mm.find(i) != mm.end()) {
      // cout << "K" << cccc << endl;
      cout << "K" << mm[i] + off << endl;
    } else {
      cout << "?" << endl;
    }
  }
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |