#include <bits/stdc++.h>
using namespace std;
const int P = 1000000007, N = 55, Tr[4][2] = {{-1, 0}, {0, -1}, {1, 0}, {0, 1}};
int R, id[N << 1][N << 1], tot, b[N * N << 2][2], A[7850][7850];
long long p[4], E[N * N << 2];
long long Pow(long long a, long long b) {
  long long res = 1;
  a %= P;
  for (; b; b >>= 1, a = a * a % P)
    if (b & 1) res = res * a % P;
  return res;
}
void Gauss() {
  int m = 0;
  for (int i = 1; i <= tot; i++) {
    m = max(m, id[b[i][0]][b[i][1] + 1]);
    for (int j = i + 1; j <= m; j++) {
      long long t = P - Pow(A[i][i], P - 2) * A[j][i] % P;
      for (int k = i; k <= m; k++) (A[j][k] += t * A[i][k] % P) %= P;
      (A[j][tot + 1] += t * A[i][tot + 1] % P) %= P;
    }
  }
}
int main() {
  scanf("%d%d%d%d%d", &R, &p[0], &p[1], &p[2], &p[3]);
  long long allp = Pow((p[0] + p[1] + p[2] + p[3]) % P, P - 2);
  for (int t = 0; t <= 3; t++) p[t] = p[t] * allp % P;
  for (int y = -R; y <= R; y++)
    for (int x = -R; x <= R; x++)
      if (x * x + y * y <= R * R)
        id[x + N][y + N] = ++tot, b[tot][0] = x + N, b[tot][1] = y + N;
  for (int i = 1; i <= tot; i++) {
    int x = b[i][0], y = b[i][1];
    A[i][i] = P - 1;
    A[i][tot + 1] = 1;
    for (int t = 0; t <= 3; t++)
      if (id[x + Tr[t][0]][y + Tr[t][1]])
        A[i][id[x + Tr[t][0]][y + Tr[t][1]]] = p[t];
  }
  Gauss();
  E[tot + 1] = 1;
  for (int i = tot; i >= 1; i--) {
    for (int j = i + 1; j <= tot + 1; j++)
      (E[i] += P - E[j] * A[i][j] % P) %= P;
    E[i] = E[i] * Pow(A[i][i], P - 2) % P;
  }
  printf("%lld", E[id[N][N]]);
  return 0;
}
