#include <bits/stdc++.h>
using namespace std;
long double smemo[1010][1010];
long double gamev(int m, int n, long double p2);
long double sq(int m, int n, long double p2) { return -(p2 - 1) * p2; }
long double maximize(int m, int n, long double V(int, int, long double),
                     long double low, long double high) {
  long double a = low;
  long double b = high;
  int itr = 10000;
  while (a < b) {
    long double p1 =
        a + (((long double)(rand() % 1000000) + 1) / (1000000 + 1)) * (b - a);
    long double p2 =
        a + (((long double)(rand() % 1000000) + 1) / (1000000 + 1)) * (b - a);
    if (p1 > p2) swap(p1, p2);
    long double v1 = V(m, n, p1);
    long double v2 = V(m, n, p2);
    if (v1 <= v2) {
      a = p1;
    } else {
      b = p2;
    }
  }
  assert(a <= b);
  return (a + b) / 2.0l;
}
long double S(int m, int n) {
  long double& ans = smemo[m][n];
  if (ans >= -0.5) return ans;
  if (n == 0) return ans = 1.0;
  if (m == 0) return ans = 1.0l / ((long double)(n + 1.0));
  long double play = S(n, m - 1);
  long double hit = S(n - 1, m);
  long double up = 1 / (play * (n + 1) + 1.0);
  ans = 1.0 / ((long double)(n + 1));
  ans = max(ans, gamev(m, n, up));
  assert((-0.000000001l <= (ans) && (ans) <= 1. + 0.000000001l));
  return ans;
}
long double gamev(int m, int n, long double p2) {
  long double play = S(n, m - 1);
  long double hit = S(n - 1, m);
  long double p3 = p2 * play * (n + 1);
  long double p1 = 1 - (p2 + p3);
  assert((-0.000000001l <= (p1) && (p1) <= 1. + 0.000000001l));
  assert((-0.000000001l <= (p2) && (p2) <= 1. + 0.000000001l));
  assert((-0.000000001l <= (p3) && (p3) <= 1. + 0.000000001l));
  long double kill = p1 / (n + 1.);
  long double bluff = p2;
  long double myplay = p3 * n * (1.0 - hit) / (n + 1.0);
  return kill + bluff + myplay;
}
int main() {
  srand(time(NULL));
  int M, N;
  cin >> M >> N;
  for (int i = 0; i < 1010; i++)
    for (int j = 0; j < 1010; j++) smemo[i][j] = -10;
  long double ans = S(M, N);
  cout << fixed << setprecision(16) << ans << " " << (1.0 - ans) << endl;
}
