#include <bits/stdc++.h>
using namespace std;
template <typename T>
string toStr(T Number) {
  stringstream ss;
  ss << Number;
  return ss.str();
}
template <typename T>
T toNum(const string &Text) {
  stringstream ss(Text);
  T result;
  return ss >> result ? result : 0;
}
int inGrid(int x, int y, int r, int c) {
  return (x >= 0 && x < r && y >= 0 && y < c ? 1 : 0);
}
int leap(int m) {
  if (m % 4 == 0 && m % 100 != 0)
    return 1;
  else if (m % 400 == 0)
    return 1;
  else
    return 0;
}
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
string months[] = {"January",   "February", "March",    "April",
                   "May",       "June",     "July",     "August",
                   "September", "October",  "November", "December"};
int dx4[] = {-1, 0, 1, 0};
int dy4[] = {0, 1, 0, -1};
const double pi = acos(-1.0), eps = 1e-9;
const int N = 2e5 + 5, M = 1e9 + 7;
int xp, yp, xv, yv;
int main() {
  cin >> xp >> yp >> xv >> yv;
  int xx = xv, yy = yv;
  vector<pair<int, int> > v;
  v.push_back(make_pair(xv, yv));
  for (;;) {
    if (xv && yv)
      v.push_back(make_pair(--xv, --yv));
    else if (xv)
      v.push_back(make_pair(--xv, yv));
    else if (yv)
      v.push_back(make_pair(xv, --yv));
    else
      break;
  }
  int f1 = 0, f2 = 0;
  for (int i = 0; i < v.size(); i++) {
    int c = abs(v[i].first - xp) + abs(v[i].second - yp);
    if (c <= i) {
      f1 = 1;
      break;
    }
  }
  v.clear();
  xv = xx, yv = yy;
  v.push_back(make_pair(xv, yv));
  for (;;) {
    if (xv && yv)
      v.push_back(make_pair(--xv, --yv));
    else if (yv)
      v.push_back(make_pair(xv, --yv));
    else if (xv)
      v.push_back(make_pair(--xv, yv));
    else
      break;
  }
  for (int i = 0; i < v.size(); i++) {
    int c = abs(v[i].first - xp) + abs(v[i].second - yp);
    if (c <= i) {
      f2 = 1;
      break;
    }
  }
  if (f1 && f2)
    puts("Polycarp");
  else
    puts("Vasiliy");
  return 0;
}
