#include <bits/stdc++.h>
using namespace std;
pair<int, int> recur(int n, int m, bool p_turn, vector<bool> estado_actual) {}
int main() {
  int n, m, n1, m1;
  while (cin >> n1 >> m1) {
    n = n1;
    m = m1;
    vector<bool> v1, v2;
    v1.push_back(true);
    n--;
    bool p_turn = false;
    for (int i = 0; i < (n1 + m1 - 1); i++) {
      if (n == 0) {
        v1.push_back(false);
        p_turn = !p_turn;
        m--;
        continue;
      }
      if (m == 0) {
        v1.push_back(true);
        p_turn = !p_turn;
        n--;
        continue;
      }
      if (p_turn) {
        if (v1[v1.size() - 1]) {
          v1.push_back(true);
          p_turn = !p_turn;
          n--;
          continue;
        } else {
          v1.push_back(false);
          m--;
          p_turn = !p_turn;
          continue;
        }
      } else {
        if (v1[v1.size() - 1]) {
          v1.push_back(false);
          p_turn = !p_turn;
          m--;
          continue;
        } else {
          v1.push_back(true);
          n--;
          p_turn = !p_turn;
          continue;
        }
      }
    }
    int p_point = 0, v_point = 0;
    bool current = v1[0];
    for (int i = 1; i < v1.size(); i++) {
      if (v1[i] == current)
        p_point++;
      else {
        v_point++;
      }
      current = v1[i];
    }
    pair<int, int> p1 = make_pair(p_point, v_point);
    p_turn = false;
    v2.push_back(false);
    n = n1;
    m = m1;
    m--;
    for (int i = 0; i < (n1 + m1 - 1); i++) {
      if (n == 0) {
        v2.push_back(false);
        p_turn = !p_turn;
        m--;
        continue;
      }
      if (m == 0) {
        v2.push_back(true);
        p_turn = !p_turn;
        n--;
        continue;
      }
      if (p_turn) {
        if (v2[v2.size() - 1]) {
          v2.push_back(true);
          p_turn = !p_turn;
          n--;
          continue;
        } else {
          v2.push_back(false);
          m--;
          p_turn = !p_turn;
          continue;
        }
      } else {
        if (v2[v2.size() - 1]) {
          v2.push_back(false);
          p_turn = !p_turn;
          m--;
          continue;
        } else {
          v2.push_back(true);
          n--;
          p_turn = !p_turn;
          continue;
        }
      }
    }
    p_point = 0, v_point = 0;
    current = v2[0];
    for (int i = 1; i < v2.size(); i++) {
      if (v2[i] == current)
        p_point++;
      else {
        v_point++;
      }
      current = v2[i];
    }
    pair<int, int> p2 = make_pair(p_point, v_point);
    if (p1.first > p2.first)
      cout << p1.first << " " << p1.second << endl;
    else {
      if (p2.first > p1.first)
        cout << p2.first << " " << p2.second << endl;
      else {
        if (p1.second < p2.second)
          cout << p1.first << " " << p1.second << endl;
        else {
          cout << p2.first << " " << p2.second << endl;
        }
      }
    }
  }
}
