#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;

const int inf = 1e18;
const int max_n = 3010;
const int Mod = 998244353;

int n,k;
int dp[max_n][max_n];

int f(int n,int k){
	if(n>k) return 0;
	if(k==0){
		if(n==0) return 1;
		else return 0;
	}
	if(n==0){
		return 0;
	}
	if(dp[n][k]!=-1) return dp[n][k];

	int t1 = f(n-1,k-1);
	int t2 = f(2*n,k);
	int ans = (t1+t2)%Mod;
	dp[n][k]=ans;
	return ans;
}

signed main(){
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	memset(dp,-1,sizeof(dp));
	cin>>n>>k;
	swap(n,k);

	cout<<f(n,k)<<endl;

}
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i,n) for(ll i=0;i<(ll)(n);i++)
#define rep1(i,n) for(ll i=1;i<=(ll)(n);i++)


int main(){
  ios::sync_with_stdio(false);
  cin.tie(0);

  ll a,b;
  cin >> a >> b;
  cout << (a+b)/2 << " " << (a-b)/2 << endl;
  
  return 0;
    

}
