#include <bits/stdc++.h>
using namespace std;
const int inf = (1 << 30) - 1;
const long long linf = (1ll << 62) - 1;
map<pair<pair<int, int>, pair<int, int> >, bool> w1, w2;
bool win1(int x1, int y1, int x2, int y2);
bool win2(int x1, int y1, int x2, int y2);
bool win1(int x1, int y1, int x2, int y2) {
  if (x1 == x2 && y1 == y2) {
    return true;
  }
  if (w1.find(make_pair(make_pair(x1, y1), make_pair(x2, y2))) != w1.end()) {
    return w1[make_pair(make_pair(x1, y1), make_pair(x2, y2))];
  }
  if (x2 == 0 && y2 == 0) {
    return false;
  }
  if (x1 == 0 && y1 == 0) {
    return true;
  }
  if (x1 > 0 && !win2(x1 - 1, y1, x2, y2)) {
    return w1[make_pair(make_pair(x1, y1), make_pair(x2, y2))] = true;
  }
  if (y1 > 0 && !win2(x1, y1 - 1, x2, y2)) {
    return w1[make_pair(make_pair(x1, y1), make_pair(x2, y2))] = true;
  }
  return w1[make_pair(make_pair(x1, y1), make_pair(x2, y2))] = false;
}
bool win2(int x1, int y1, int x2, int y2) {
  if (x1 == x2 && y1 == y2) {
    return true;
  }
  if (w2.find(make_pair(make_pair(x1, y1), make_pair(x2, y2))) != w2.end()) {
    return w2[make_pair(make_pair(x1, y1), make_pair(x2, y2))];
  }
  if (x1 == 0 && y1 == 0) {
    return false;
  }
  if (x2 == 0 && y2 == 0) {
    return true;
  }
  if (x2 > 0 && !win1(x1, y1, x2 - 1, y2)) {
    return w2[make_pair(make_pair(x1, y1), make_pair(x2, y2))] = true;
  }
  if (y2 > 0 && !win1(x1, y1, x2, y2 - 1)) {
    return w2[make_pair(make_pair(x1, y1), make_pair(x2, y2))] = true;
  }
  if (x2 > 0 && y2 > 0 && !win1(x1, y1, x2 - 1, y2 - 1)) {
    return w2[make_pair(make_pair(x1, y1), make_pair(x2, y2))] = true;
  }
  return w2[make_pair(make_pair(x1, y1), make_pair(x2, y2))] = false;
}
bool win(int x1, int y1, int x2, int y2) {
  return !((x2 < x1 + y1 && y2 < y1) || (y2 < x1 + y1 && x2 < x1));
}
int main() {
  int x1, y1, x2, y2;
  cin >> x1 >> y1 >> x2 >> y2;
  cout << (win(x1, y1, x2, y2) ? "Polycarp" : "Vasiliy") << endl;
  return 0;
}
