#include // {{{ #include #include #include #include #include #include #define GET_MACRO(a, b, c, d, NAME, ...) NAME #define REP(...) GET_MACRO(__VA_ARGS__, REP4, REP3, REP2)(__VA_ARGS__) #define REP2(i, a) REP3(i, 0, a) #define REP3(i, a, b) REP4(i, a, b, 1) #define REP4(i, a, b, s) for (int i = (a); i < (int)(b); i += (s)) #define REPR(...) GET_MACRO(__VA_ARGS__, REPR4, REPR3, REPR2)(__VA_ARGS__) #define REPR2(i, a) REPR3(i, 0, a) #define REPR3(i, a, b) REPR4(i, a, b, 1) #define REPR4(i, a, b, s) for (int i = (b)-1; i >= (int)(a); i -= (s)) #define ALL(c) (c).begin(), (c).end() using Int = long long; // clang-format off templateinline bool chmax(T&x,U a){return xinline bool chmin(T&x,U a){return a using Mat = vector>; template Mat buildMat(int R, int C) { return move(Mat(R, vector(C))); } signed main() { int N = in(); auto A = buildMat(N, N); REP(i, N) REP(j, N) cin >> A[i][j]; vector cand; REP(i, N) { bool ok = true; REP(j, N) { if (i == j) continue; ok = ok && A[j][i] == "nyanpass"; } if (ok) cand.emplace_back(i + 1); } if (cand.size() == 1) { cout << cand[0] << endl; } else { puts("-1"); } return 0; }