#include <bits/stdc++.h>
using namespace std;
long long int gcd(long long int a, long long int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
bool compare(const pair<int, int>& i, const pair<int, int>& j) {
  return i.second < j.second;
}
bool isPrime(long long int j) {
  if (j == 2) return true;
  if (j % 2 == 0) return false;
  for (long long int i = 3; i * i <= j; i = i + 2)
    if (j % i == 0) return false;
  return true;
}
bool isSubSequence(string str1, string str2, int m, int n) {
  int j = 0;
  for (int i = 0; i < n && j < m; i++)
    if (str1[j] == str2[i]) j++;
  return (j == m);
}
long long int modularExponentiation(long long int x, long long int n) {
  if (n == 0)
    return 1;
  else if (n % 2 == 0)
    return modularExponentiation((x * x), n / 2);
  else
    return (x * modularExponentiation((x * x), (n - 1) / 2));
}
int issq(long long int n) {
  long long int a = sqrt(n);
  return (a * a == n ? 1 : 0);
}
long long int exponentiation(long long int base, long long int exp) {
  if (exp == 0) return 1;
  if (exp == 1) return base % 998244353;
  long long int t = exponentiation(base, exp / 2);
  t = (t * t) % 998244353;
  if (exp % 2 == 0)
    return t;
  else
    return ((base % 998244353) * t) % 998244353;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int w, h;
  cin >> w >> h;
  cout << exponentiation(2, w + h);
}
