#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define value first
#define index second
#define EGRY \
ios_base::sync_with_stdio(false); \
cin.tie(NULL);
const int MAX = 105;
const int MOD = 998244353;
const int OO = INT_MAX;
const double EPS = (double)1e-9;
typedef pair<int, int> Point;
ll n, start_a, start_b, moves_a, moves_b;
ll add(ll a, ll b)
{
return (((a % MOD) + (b % MOD)) % MOD);
}
ll mul(ll a, ll b)
{
return (((a % MOD) * (b % MOD)) % MOD);
}
ll fast_power(ll base, ll power)
{
if (power == 0)
{
return 1;
}
ll p = fast_power(base, power / 2);
ll res = mul(p, p);
if (power % 2)
{
res = mul(res, base);
}
return res;
}
ll divide(ll up, ll down)
{
return mul(up, fast_power(down, MOD - 2));
}
ll mem[MAX][MAX][2];
ll dp(ll start_a, ll start_b, bool player)
{
if (start_a == n)
{
return (double)1;
}
if (start_b == n)
{
return (double)0;
}
ll &ret = mem[start_a][start_b][player];
if (ret != -1)
{
return ret;
}
ll max_moves = (player == 0) ? moves_a : moves_b;
ret = 0;
for (int move = 1; move <= max_moves; move++)
{
if (player == 0)
{
ret = add(ret, divide(dp(min(start_a + move, n), start_b, !player), max_moves));
}
else
{
ret = add(ret, divide(dp(start_a, min(start_b + move, n), !player), max_moves));
}
}
return ret;
}
void solve()
{
cin >> n >> start_a >> start_b >> moves_a >> moves_b;
bool player = 0;
memset(mem, -1.0, sizeof(mem));
cout << dp(start_a, start_b, 0);
}
int main()
{
EGRY
ll t = 1;
// cin >> t;
while (t--)
{
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSB2YWx1ZSBmaXJzdAojZGVmaW5lIGluZGV4IHNlY29uZAoKI2RlZmluZSBFR1JZICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgXAogICAgY2luLnRpZShOVUxMKTsKCmNvbnN0IGludCBNQVggPSAxMDU7CmNvbnN0IGludCBNT0QgPSA5OTgyNDQzNTM7CmNvbnN0IGludCBPTyA9IElOVF9NQVg7Cgpjb25zdCBkb3VibGUgRVBTID0gKGRvdWJsZSkxZS05OwoKdHlwZWRlZiBwYWlyPGludCwgaW50PiBQb2ludDsKCmxsIG4sIHN0YXJ0X2EsIHN0YXJ0X2IsIG1vdmVzX2EsIG1vdmVzX2I7CgpsbCBhZGQobGwgYSwgbGwgYikKewogICAgcmV0dXJuICgoKGEgJSBNT0QpICsgKGIgJSBNT0QpKSAlIE1PRCk7Cn0KCmxsIG11bChsbCBhLCBsbCBiKQp7CiAgICByZXR1cm4gKCgoYSAlIE1PRCkgKiAoYiAlIE1PRCkpICUgTU9EKTsKfQoKbGwgZmFzdF9wb3dlcihsbCBiYXNlLCBsbCBwb3dlcikKewogICAgaWYgKHBvd2VyID09IDApCiAgICB7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgbGwgcCA9IGZhc3RfcG93ZXIoYmFzZSwgcG93ZXIgLyAyKTsKCiAgICBsbCByZXMgPSBtdWwocCwgcCk7CgogICAgaWYgKHBvd2VyICUgMikKICAgIHsKICAgICAgICByZXMgPSBtdWwocmVzLCBiYXNlKTsKICAgIH0KCiAgICByZXR1cm4gcmVzOwp9CgpsbCBkaXZpZGUobGwgdXAsIGxsIGRvd24pCnsKICAgIHJldHVybiBtdWwodXAsIGZhc3RfcG93ZXIoZG93biwgTU9EIC0gMikpOwp9CgpsbCBtZW1bTUFYXVtNQVhdWzJdOwoKbGwgZHAobGwgc3RhcnRfYSwgbGwgc3RhcnRfYiwgYm9vbCBwbGF5ZXIpCnsKCiAgICBpZiAoc3RhcnRfYSA9PSBuKQogICAgewogICAgICAgIHJldHVybiAoZG91YmxlKTE7CiAgICB9CiAgICBpZiAoc3RhcnRfYiA9PSBuKQogICAgewogICAgICAgIHJldHVybiAoZG91YmxlKTA7CiAgICB9CgogICAgbGwgJnJldCA9IG1lbVtzdGFydF9hXVtzdGFydF9iXVtwbGF5ZXJdOwoKICAgIGlmIChyZXQgIT0gLTEpCiAgICB7CiAgICAgICAgcmV0dXJuIHJldDsKICAgIH0KCiAgICBsbCBtYXhfbW92ZXMgPSAocGxheWVyID09IDApID8gbW92ZXNfYSA6IG1vdmVzX2I7CgogICAgcmV0ID0gMDsKCiAgICBmb3IgKGludCBtb3ZlID0gMTsgbW92ZSA8PSBtYXhfbW92ZXM7IG1vdmUrKykKICAgIHsKICAgICAgICBpZiAocGxheWVyID09IDApCiAgICAgICAgewogICAgICAgICAgICByZXQgPSBhZGQocmV0LCBkaXZpZGUoZHAobWluKHN0YXJ0X2EgKyBtb3ZlLCBuKSwgc3RhcnRfYiwgIXBsYXllciksIG1heF9tb3ZlcykpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICByZXQgPSBhZGQocmV0LCBkaXZpZGUoZHAoc3RhcnRfYSwgbWluKHN0YXJ0X2IgKyBtb3ZlLCBuKSwgIXBsYXllciksIG1heF9tb3ZlcykpOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gcmV0Owp9Cgp2b2lkIHNvbHZlKCkKewoKICAgIGNpbiA+PiBuID4+IHN0YXJ0X2EgPj4gc3RhcnRfYiA+PiBtb3Zlc19hID4+IG1vdmVzX2I7CgogICAgYm9vbCBwbGF5ZXIgPSAwOwoKICAgIG1lbXNldChtZW0sIC0xLjAsIHNpemVvZihtZW0pKTsKCiAgICBjb3V0IDw8IGRwKHN0YXJ0X2EsIHN0YXJ0X2IsIDApOwp9CgppbnQgbWFpbigpCnsKICAgIEVHUlkKICAgICAgICBsbCB0ID0gMTsKICAgIC8vIGNpbiA+PiB0OwoKICAgIHdoaWxlICh0LS0pCiAgICB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=