#include <bits/stdc++.h>
using namespace std;
int x[200005];
int y[200005];
char s[200005];
int main() {
  int a, b;
  long long ans = 1;
  long long sum = 0;
  scanf("%d%d", &a, &b);
  memset(x, 0, sizeof(x));
  memset(y, 0, sizeof(y));
  scanf("%s", s);
  for (int i = 0; i < a; i++) x[a - i - 1] = s[i] - '0';
  scanf("%s", s);
  for (int i = 0; i < b; i++) {
    y[b - i - 1] = s[i] - '0';
    if (i) y[b - i - 1] += y[b - i];
  }
  for (int i = 0; i <= max(a, b); i++) {
    if (x[i]) {
      sum += y[i] * ans % 998244353;
      sum %= 998244353;
    }
    ans = ans * 2 % 998244353;
  }
  printf("%lld\n", sum);
  return 0;
}
