#include <bits/stdc++.h>
using namespace std;
struct edge {
  int x, y, l;
  edge() {}
  edge(int a, int b, int c) { x = a, y = b, l = c; }
};
bool comp(pair<int, int> a, pair<int, int> b) {
  if (a.second == b.second) return a.first < b.first;
  return a.second < b.second;
}
const int FSIZE = 4005;
int n, m;
pair<int, int> blue[2005], red[2005];
bool used[2005][2005];
bool intersect(edge a, edge b) {
  return b.x >= a.x && b.x <= a.x + a.l && a.y >= b.y && a.y <= b.y + b.l;
}
bool check(int t) {
  t *= 2;
  vector<edge> b, r;
  int cur_y = -999999999, sx, ex;
  for (int i = 0; i < n; i++) {
    if (cur_y != blue[i].second || blue[i].first > ex + 2 * t) {
      if (cur_y != -999999999)
        b.push_back(edge(sx - t, cur_y, ex - sx + 2 * t));
      cur_y = blue[i].second;
      sx = blue[i].first;
    }
    ex = blue[i].first;
  }
  b.push_back(edge(sx - t, cur_y, ex - sx + 2 * t));
  int cur_x = -999999999, sy, ey;
  for (int i = 0; i < m; i++) {
    if (cur_x != red[i].first || red[i].second > ey + 2 * t) {
      if (cur_x != -999999999)
        r.push_back(edge(cur_x, sy - t, ey - sy + 2 * t));
      cur_x = red[i].first;
      sy = red[i].second;
    }
    ey = red[i].second;
  }
  r.push_back(edge(cur_x, sy - t, ey - sy + 2 * t));
  memset(used, 0, sizeof(used));
  for (int i = 0; i < b.size(); i++) {
    for (int j = 0; j < r.size(); j++) {
      if (!intersect(b[i], r[j])) continue;
      for (int k = j + 1; k < r.size(); k++) {
        if (!intersect(b[i], r[k])) continue;
        if (used[j][k]) return 1;
        used[j][k] = 1;
      }
    }
  }
  return 0;
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    int x, y;
    cin >> x >> y;
    blue[i] = pair<int, int>(x - y, x + y);
  }
  for (int i = 0; i < m; i++) {
    int x, y;
    cin >> x >> y;
    red[i] = pair<int, int>(x - y, x + y);
  }
  sort(blue, blue + n, comp);
  sort(red, red + m);
  int lo = 0, hi = 20000000, mid = (lo + hi) / 2;
  while (lo < mid) {
    if (check(mid))
      hi = mid;
    else
      lo = mid;
    mid = (lo + hi) / 2;
  }
  if (hi < 19000000)
    cout << hi;
  else
    cout << "Poor Sereja!";
}
