#ifndef LOCAL #pragma GCC optimize("O3") #endif #include using namespace std; #define sim template muu & operator<<( #define ris return *this #define eni(r) sim> typename enable_if <1 r sizeof(dud(0)),muu&>::type operator<<(c g) { sim> struct rge {c b,e ;}; sim> rge range(c i, c j) {return rge{i, j};} sim> auto dud(c *r)-> decltype(cerr << *r); sim> char dud(...); struct muu { #ifdef LOCAL stringstream a; ~muu() {cerr << a.str() << endl;} eni(<) a << boolalpha << g; ris;} eni(==) ris << range(begin(g), end(g));} sim, class m mor pair r) {ris << "(" << r.first << ", " << r.second << ")";} sim mor rge u) { a << "["; for (c i = u.b; i != u.e; ++i) *this << ", " + 2 * (i == u.b) << *i; ris << "]"; } #else sim mor const c&) {ris;} #endif muu & operator()(){ris;} }; #define debug (muu() << __FUNCTION__ << "#" << __LINE__ << ": ") #define imie(r) "[" #r ": " << (r) << "] " #define imask(r) "[" #r ": " << bitset<8 * sizeof(r)>(r) << "] " #define arr(a, i) "[" #a imie(i) ": " << a[i] << "] " #define arr2(a, i, j) "[" #a imie(i) imie(j) ": " << a[i][j] << "] " using ll=long long; const int nax=1000*1007; int n; int A, B; int M, W; int tab[nax]; void pie() { printf("Petyr\n"); exit(0); } void dru() { printf("Varys\n"); exit(0); } void nim() { int x=0; for (int i=1; i<=n; i++) x^=(tab[i]%(M+1)); if (x) pie(); else dru(); } int main() { scanf("%d%d%d", &n, &A, &B); M=min(A, B); W=max(A, B); for (int i=1; i<=n; i++) scanf("%d", &tab[i]); sort(tab+1, tab+1+n); reverse(tab+1, tab+1+n); if (tab[1]<=M || A==B) nim(); if (A==W) pie(); if (tab[2]>M) dru(); int r=0; for (int i=2; i<=n; i++) r^=tab[i]; for (int i=1; i<=A && i<=tab[1]; i++) if (tab[1]-i<=A && tab[1]-i==r) pie(); dru(); return 0; }