Petr likes to come up with problems about randomly generated data. This time problem is about random permutation. He decided to generate a random permutation this way: he takes identity permutation of numbers from 1 to n and then 3n times takes a random pair of different elements and swaps them. Alex envies Petr and tries to imitate him in all kind of things. Alex has also come up with a problem about random permutation. He generates a random permutation just like Petr but swaps elements 7n+1 times instead of 3n times. Because it is more random, OK?!

You somehow get a test from one of these problems and now you want to know from which one.

Input

In the first line of input there is one integer n (10^{3} ≤ n ≤ 10^{6}).

In the second line there are n distinct integers between 1 and n — the permutation of size n from the test.

It is guaranteed that all tests except for sample are generated this way: First we choose n — the size of the permutation. Then we randomly choose a method to generate a permutation — the one of Petr or the one of Alex. Then we generate a permutation using chosen method.

Output

If the test is generated via Petr's method print "Petr" (without quotes). If the test is generated via Alex's method print "Um_nik" (without quotes).

Example

Input

5
2 4 5 1 3


Output

Petr

Note

Please note that the sample is not a valid test (because of limitations for n) and is given only to illustrate input/output format. Your program still has to print correct answer to this test to get AC.

Due to randomness of input hacks in this problem are forbidden.
#include <bits/stdc++.h>
using namespace std;
const int N = 1000005;
int s[N];
long long invs = 0;
vector<int> merge(int l, int r) {
  if (l == r) {
    return {s[l]};
  }
  int d = (r - l) / 2;
  vector<int> a = merge(l, l + d);
  vector<int> b = merge(l + d + 1, r);
  vector<int> ret;
  for (int i = 0, j = 0; i < a.size() || j < b.size();) {
    if (i == a.size()) {
      ret.push_back(b[j]);
      invs += a.size() - i;
      j++;
    } else if (j == b.size()) {
      ret.push_back(a[i]);
      i++;
    } else if (a[i] > b[j]) {
      ret.push_back(b[j]);
      invs += a.size() - i;
      j++;
    } else {
      ret.push_back(a[i]);
      i++;
    }
  }
  return ret;
}
void gen() {
  int n = 100;
  int r = rand() * 10;
  cout << n << endl;
  for (int i = 0; i < n; i++) {
    cout << (i + r) % n << " ";
  }
  exit(0);
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf(" %d", &s[i]);
  }
  merge(0, n - 1);
  if (3 * n % 2 == invs % 2) {
    printf("Petr\n");
  } else {
    printf("Um_nik\n");
  }
  return 0;
}
