#include<bits/stdc++.h>
using namespace std;

const int mod=998244353;
int a,b,c;
int main( ) {
	cin>>a>>b>>c;
	a%=mod, b%=mod, c%=mod;
	a=1ll*a*(a+1)/2%mod;
	b=1ll*b*(b+1)/2%mod;
	c=1ll*c*(c+1)/2%mod;
	cout<<1ll*a*b%mod*c%mod;
	return 0;
}
#include<bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC target ("avx2")
#pragma GCC optimize("unroll-loops")
#pragma comment(linker, "/stack:200000000")
#define ll long long int
#define endl '\n'
#define M 998244353
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define FOR(i,a,b) for(i=a;i<b;i++)
#define RFOR(i,a,b) for(i=a;i>=b;i--)
#define all(x) x.begin(),x.end()
#define flash ios_base::sync_with_stdio(false); cin.tie(NULL)
using namespace std;

int main()
{
    flash;
    //sieve();
    ll T=1,t=1,n,m,q,k,i,j;
    // cin>>T;
    while(T--)
    {
        cin>>n>>m>>k;
        ll sn = (n *(n+1))/2;
        sn = sn%M;
        ll sm = (m *(m+1))/2;
        sm = sm%M;
        ll sk = (k *(k+1))/2;
        sk = sk%M;
        ll ans = ((sn%M * sm%M)%M * sk%M)%M;
        cout<<ans<<endl;
    }
}