#include<bits/stdc++.h>
#define mo 998244353
#define ll long long
using namespace std;
ll A,B,C,D,ans,dp[3010][3010][2];
void add(ll &x,ll y){x=(x+y)%mo;}
int main(){
	cin>>A>>B>>C>>D;
	dp[A][B][0]=1;
	for (ll i=A;i<=C;i++){
		for (ll j=B;j<=D;j++){
			add(dp[i][j+1][1],(dp[i][j][1]+dp[i][j][0])*i);
			add(dp[i+1][j][0],dp[i][j][0]*j+dp[i][j][1]);
		}
	}
	cout<<(dp[C][D][0]+dp[C][D][1])%mo<<endl;
	return 0;
}