#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
int n, m;
long long a[155][155], b[155][155], c[155][155], ans;
int main() {
  scanf("%d%d", &n, &m);
  if (m < n) n ^= m ^= n ^= m;
  for (int i = 0; i <= n; i++) a[i][i] = a[i + 1][i] = 1;
  for (int k = 0; k < m; k++) {
    for (int i = 1; i < n - 1; i++)
      for (int j = n - 1; j > i; j--)
        (ans += (c[i][j] += c[i - 1][j] + c[i][j + 1] - c[i - 1][j + 1] +
                            a[i - 1][j + 1] + b[i - 1][j] +
                            b[n - j - 1][n - i]) %= MOD) %= MOD;
    for (int i = n - 2; i >= 0; i--)
      for (int j = n - 1; j > i; j--)
        (ans += ((b[i][j] += b[i + 1][j] + b[i][j + 1] - b[i + 1][j + 1] +
                             a[i][j + 1]) %= MOD) *
                2) %= MOD;
    for (int i = n - 1; i >= 0; i--)
      for (int j = i + 1; j <= n; j++)
        (ans += (a[i][j] += a[i + 1][j] + a[i][j - 1] - a[i + 1][j - 1]) %=
         MOD) %= MOD;
  }
  printf("%d\n", int((ans + MOD) % MOD));
  return 0;
}
