#include <bits/stdc++.h>
const int md = 998244353;
using namespace std;
using namespace std::chrono;
long long pw(long long a, long long b) {
  long long c = 1, m = a;
  while (b) {
    if (b & 1) c = (c * m);
    m = (m * m);
    b /= 2;
  }
  return c;
}
long long pwmd(long long a, long long b) {
  long long c = 1, m = a;
  while (b) {
    if (b & 1) c = (c * m) % md;
    m = (m * m) % md;
    b /= 2;
  }
  return c;
}
long long modinv(long long n) { return pwmd(n, md - 2); }
long long ceel(long long a, long long b) {
  if (a % b == 0)
    return a / b;
  else
    return a / b + 1;
}
int my_log(long long n, int b) {
  long long i = 1;
  int ans = 0;
  while (1) {
    if (i > n) {
      ans--;
      break;
    }
    if (i == n) break;
    i *= b;
    ans++;
  }
  return ans;
}
bool is(string r) {
  string p = r;
  reverse(p.begin(), p.end());
  return (r == p);
}
int l_p_p(const string &s) {
  string kmprev = s;
  std::reverse(kmprev.begin(), kmprev.end());
  string kmp = s + "#" + kmprev;
  vector<int> lps(kmp.size(), 0);
  for (int i = 1; i < (int)lps.size(); ++i) {
    int prev_idx = lps[i - 1];
    while (prev_idx > 0 && kmp[i] != kmp[prev_idx]) {
      prev_idx = lps[prev_idx - 1];
    }
    lps[i] = prev_idx + (kmp[i] == kmp[prev_idx] ? 1 : 0);
  }
  return lps[lps.size() - 1];
}
bool sortbysec(const pair<int, int> &a, const pair<int, int> &b) {
  return (a.second < b.second);
}
int main() {
  int x1, y1, x2, y2;
  scanf("%d", &x1), scanf("%d", &y1), scanf("%d", &x2), scanf("%d", &y2);
  if (x1 + y1 <= max(x2, y2) || (x1 <= x2 && y1 <= y2)) {
    printf("Polycarp");
  } else {
    printf("Vasiliy");
  }
}
