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.
/*
 * Author Ayub Subhaniya
 * Institute DA-IICT
 */

import java.io.*;
import java.lang.reflect.Array;
import java.math.*;
import java.util.*;
import javafx.util.Pair;

public class Tester
{

    InputStream in;
    PrintWriter out;

    long mod=(long)1e9+7;
    int MAX=(int)1e5+7;
    double eps=1e-6;

    ArrayList<Integer> g[];
    void solve()
    {
        int n=ni();
        int a[]=na(n);

        visited=new boolean[n+1];

        g=new ArrayList[n+1];
        for (int i=0;i<=n;i++)
            g[i]=new ArrayList<>();


        for (int i=0;i<n;i++)
            if (a[i]!=(i+1))
            {
                g[a[i]].add(i+1);
                g[i+1].add(a[i]);
            }
        int ans=0;
        for (int i=1;i<=n;i++)
            if (!visited[i])
            {
                //tr(i+"+++");
                ans+=dfs(i)-1;
            }
        //tr(ans);
        if (n%2==0)
        {
            if (ans%2==0)
                out.println("Petr");
            else
                out.println("Um_nik");
        }
        else
        {
            if (ans%2!=0)
                out.println("Petr");
            else
                out.println("Um_nik");
        }

    }

    boolean visited[];
    int dfs(int u)
    {
        //tr(u);
        visited[u]=true;
        for (int v:g[u])
        {
            if (!visited[v])
                return 1+dfs(v);
        }
        return 1;
    }


    /*class Pair implements Comparable<Pair>
    {
        long x;
        long y;

        Pair(long a,long b)
        {
            x=a;
            y=b;
        }

        @Override
        public boolean equals(Object o)
        {
            Pair other = (Pair)o;
            return x == other.x && y == other.y;
        }
        public String toString()
        {
            return x+" "+y;
        }

        @Override
        public int compareTo(Pair o)
        {
            if (x==o.x)
                return Long.compare(y, o.y);
            else
                return Long.compare(x, o.x);
        }
        @Override public int hashCode()
        {
            return Objects.hash(x, y);
        }
    }*/

    long pow(long x, long n, long M) {
        x%=M;
        long result = 1;
        while (n > 0) {
            if (n % 2 == 1)
                result = (result * x) % M;
            x = (x * x) % M;
            n = n / 2;
        }
        return result;
    }

    long modInverse(long A, long M) {
        extendedEuclid(A, M);
        return (EEx % M + M) % M;
    }
    long EEd, EEx, EEy;

    void extendedEuclid(long A, long B) {
        if (B == 0) {
            EEd = A;
            EEx = 1;
            EEy = 0;
        } else {
            extendedEuclid(B, A % B);
            long temp = EEx;
            EEx = EEy;
            EEy = temp - (A / B) * EEy;
        }
    }

    int max(int a,int b)
    {
        if(a>b)
            return a;
        else
            return b;
    }

    int min(int a,int b)
    {
        if(a>b)
            return b;
        else
            return a;
    }

    long max(long a,long b)
    {
        if(a>b)
            return a;
        else
            return b;

    }


    long min(long a,long b)
    {
        if(a>b)
            return b;
        else
            return a;

    }

    long add(long a,long b)
    {
        long x=(a+b);
        while(x>=mod) x-=mod;
        return x;

    }


    long sub(long a,long b)
    {
        long x=(a-b);
        while(x<0) x+=mod;
        return x;

    }


    long mul(long a,long b)
    {
        a%=mod;
        b%=mod;
        long x=(a*b);
        return x%mod;

    }

    void run() throws Exception
    {
        String INPUT = "/Users/ayubsubhaniya/IdeaProjects/Test/src/input.txt";
        in = oj ? System.in : new FileInputStream(INPUT);
        out = new PrintWriter(System.out);

        long s = System.currentTimeMillis();
        solve();
        out.flush();
        tr(System.currentTimeMillis() - s + "ms");

    }
    public static void main(String[] args) throws Exception
    {
        new Tester().run();
    }

    private byte[] inbuf = new byte[1024];
    public int lenbuf = 0, ptrbuf = 0;

    private int readByte()
    {
        if (lenbuf == -1)
            throw new InputMismatchException();
        if (ptrbuf >= lenbuf)
        {
            ptrbuf = 0;
            try
            {
                lenbuf = in.read(inbuf);
            }
            catch (IOException e)
            {
                throw new InputMismatchException();
            }
            if (lenbuf <= 0)
                return -1;
        }
        return inbuf[ptrbuf++];
    }

    private boolean inSpaceChar(int c)
    {
        return !(c >= 33 && c <= 126);
    }

    private int skip()
    {
        int b;
        while ((b = readByte()) != -1 && inSpaceChar(b))
            ;
        return b;
    }

    private double nd()
    {
        return Double.parseDouble(ns());
    }

    private char nc()
    {
        return (char) skip();
    }

    private String ns()
    {
        int b = skip();
        StringBuilder sb = new StringBuilder();
        while (!(inSpaceChar(b)))
        { // when nextLine, (inSpaceChar(b) && b != ' ')
            sb.appendCodePoint(b);
            b = readByte();
        }
        return sb.toString();
    }

    private char[] ns(int n)
    {
        char[] buf = new char[n];
        int b = skip(), p = 0;
        while (p < n && !(inSpaceChar(b)))
        {
            buf[p++] = (char) b;
            b = readByte();
        }
        return n == p ? buf : Arrays.copyOf(buf, p);
    }

    private char[][] nm(int n, int m)
    {
        char[][] map = new char[n][];
        for (int i = 0; i < n; i++)
            map[i] = ns(m);
        return map;
    }

    private int[] na(int n)
    {
        int[] a = new int[n];
        for (int i = 0; i < n; i++)
            a[i] = ni();
        return a;
    }

    private int ni()
    {
        int num = 0, b;
        boolean minus = false;
        while ((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'))
            ;
        if (b == '-')
        {
            minus = true;
            b = readByte();
        }

        while (true)
        {
            if (b >= '0' && b <= '9')
            {
                num = num * 10 + (b - '0');
            }
            else
            {
                return minus ? -num : num;
            }
            b = readByte();
        }
    }

    private long nl()
    {
        long num = 0;
        int b;
        boolean minus = false;
        while ((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'))
            ;
        if (b == '-')
        {
            minus = true;
            b = readByte();
        }

        while (true)
        {
            if (b >= '0' && b <= '9')
            {
                num = num * 10 + (b - '0');
            }
            else
            {
                return minus ? -num : num;
            }
            b = readByte();
        }
    }

    private boolean oj = System.getProperty("ONLINE_JUDGE") != null;

    private void tr(Object... o)
    {
        if (!oj)
            System.out.println(Arrays.deepToString(o));
    }

}

