#include <iostream>
#include <stack>
#include <vector>

int main() {
  int n, q;
  std::cin >> n >> q;
  std::vector<std::stack<int>> s(n);

  for (int i = 0; i < q; ++i) {
    int c, t;
    std::cin >> c >> t;
    switch (c) {
    case 0:
      int x;
      std::cin >> x;
      s.at(t).push(x);
      break;
    case 1:
      if (s.at(t).size() > 0)
        std::cout << s.at(t).top() << std::endl;
      break;
    case 2:
      if (s.at(t).size() > 0)
        s.at(t).pop();
      break;
    }
  }
}

