#include using namespace std; const int N = 1e6 + 10; int n, a, b; int f[N]; int ft[N]; void update(int i, int x) { for(++i; i < N; i += i & -i) { ft[i] += x; } } int get(int i) { int s = 0; for(++i; i > 0; i -= i & -i) { s += ft[i]; } return s; } int x[N]; int solve() { scanf("%d%d%d", &n, &a, &b); int z = min(a, b); f[0] = 0; update(0, 1); for(int i = 1; i < N; i++) { if(i-z-1 >= 0) { update(f[i-z-1], -1); } int lo = 0, hi = N-1; while(lo < hi) { int mid = (lo + hi) / 2; if(get(mid) == mid + 1) { lo = mid + 1; } else { hi = mid; } } f[i] = lo; update(f[i], +1); } int g = 0; vector Z; for(int i = 0; i < n; i++) { scanf("%d", x + i); g ^= f[x[i]]; if(x[i] > z) { Z.push_back(x[i]); } } fprintf(stderr, "g=%d\n", g); if(a == b) { return g > 0 ? 0 : 1; } else { if(a > b) { if(g > 0) return 0; return Z.empty() ? 1 : 0; } else { if(g == 0) return 1; if(Z.empty()) return 0; if(Z.size() > 1) return 1; int t = Z[0]; int need = g ^ f[t]; for(int i = 0; i <= z; i++) { if(t - i <= a && f[i] == need) { return 0; } } return 1; } } } int main() { puts(solve() == 0 ? "Petyr" : "Varys"); return 0; }