Two kittens, Max and Min, play with a pair of non-negative integers x and y. As you can guess from their names, kitten Max loves to maximize and kitten Min loves to minimize. As part of this game Min wants to make sure that both numbers, x and y became negative at the same time, and kitten Max tries to prevent him from doing so.

Each kitten has a set of pairs of integers available to it. Kitten Max has n pairs of non-negative integers (ai, bi) (1 ≤ i ≤ n), and kitten Min has m pairs of non-negative integers (cj, dj) (1 ≤ j ≤ m). As kitten Max makes a move, it can take any available pair (ai, bi) and add ai to x and bi to y, and kitten Min can take any available pair (cj, dj) and subtract cj from x and dj from y. Each kitten can use each pair multiple times during distinct moves.

Max moves first. Kitten Min is winning if at some moment both numbers a, b are negative simultaneously. Otherwise, the winner of the game is kitten Max. Determine which kitten wins if both of them play optimally.

Input

The first line contains two integers, n and m (1 ≤ n, m ≤ 100 000) — the number of pairs of numbers available to Max and Min, correspondingly.

The second line contains two integers x, y (1 ≤ x, y ≤ 109) — the initial values of numbers with which the kittens are playing.

Next n lines contain the pairs of numbers ai, bi (1 ≤ ai, bi ≤ 109) — the pairs available to Max.

The last m lines contain pairs of numbers cj, dj (1 ≤ cj, dj ≤ 109) — the pairs available to Min.

Output

Print «Max» (without the quotes), if kitten Max wins, or "Min" (without the quotes), if kitten Min wins.

Examples

Input

2 2
42 43
2 3
3 2
3 10
10 3


Output

Min


Input

1 1
1 1
3 4
1 1


Output

Max

Note

In the first test from the statement Min can respond to move (2, 3) by move (3, 10), and to move (3, 2) by move (10, 3). Thus, for each pair of Max and Min's moves the values of both numbers x and y will strictly decrease, ergo, Min will win sooner or later.

In the second sample test after each pair of Max and Min's moves both numbers x and y only increase, thus none of them will become negative.
#include <bits/stdc++.h>
using namespace std;
set<pair<int, int> > a;
vector<pair<int, int> > v, w;
bool f(pair<int, int> a, pair<int, int> b, pair<int, int> c) {
  return 1LL * (-c.second + a.second) * (b.first - a.first) >
         1LL * (-b.second + a.second) * (c.first - a.first);
}
int main() {
  int n, m, x, y;
  scanf("%d%d%d%d", &n, &m, &x, &y);
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", &x, &y);
    a.insert(pair<int, int>(x, -y));
    v.push_back(pair<int, int>(x, -y));
  }
  for (int i = 0; i < m; ++i) {
    scanf("%d%d", &x, &y);
    v.push_back(pair<int, int>(x, -y));
  }
  sort(v.begin(), v.end());
  v.erase(unique(v.begin(), v.end()), v.end());
  for (pair<int, int> t : v) {
    while (w.size() && w.back().second > t.second) w.pop_back();
    while (w.size() > 1 && f(w[w.size() - 2], w.back(), t)) w.pop_back();
    w.push_back(t);
  }
  string ans = "Min";
  for (pair<int, int> t : w)
    if (a.count(t)) {
      ans = "Max";
      break;
    }
  puts(ans.c_str());
  return 0;
}
