#include <bits/stdc++.h>
using namespace std;
const int modd = 1000000000 + 7;
const int maxn = 150 + 15;
int n, m;
int f[maxn][maxn][2][2], g[maxn][maxn][2][2];
int ans;
int cha(int x) {
  if (x >= modd) return x - modd;
  return x;
}
int found(int a, int b, int c, int d, int st1, int st2) {
  return cha(cha(g[c][d][st1][st2] + g[a - 1][b - 1][st1][st2]) + modd -
             cha(g[c][b - 1][st1][st2] + g[a - 1][d][st1][st2]));
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++)
    for (int j = i; j <= m; j++) g[i][j][0][0] = 1;
  for (int i = 1; i <= m; i++)
    for (int j = 1; j <= m; j++)
      g[i][j][0][0] +=
          g[i][j - 1][0][0] + g[i - 1][j][0][0] - g[i - 1][j - 1][0][0];
  ans = n * m * (m + 1) / 2;
  for (int i = 2; i <= n; i++) {
    memset(f, 0, sizeof(f));
    for (int j = 1; j <= m; j++)
      for (int k = j; k <= m; k++) f[j][k][0][0] = found(j, 1, m, k, 0, 0);
    for (int j = 1; j <= m; j++)
      for (int k = j; k <= m; k++)
        f[j][k][0][1] =
            cha(found(j, k, k, m, 0, 1) + found(j, k + 1, k, m, 0, 0));
    for (int j = 1; j <= m; j++)
      for (int k = j; k <= m; k++)
        f[j][k][1][0] =
            cha(found(1, j, j, k, 1, 0) + found(1, j, j - 1, k, 0, 0));
    for (int j = 1; j <= m; j++)
      for (int k = j; k <= m; k++) {
        f[j][k][1][1] =
            cha(found(1, k, j, m, 1, 1) + found(1, k + 1, j, m, 1, 0));
        int ed =
            cha(found(1, k, j - 1, m, 0, 1) + found(1, k + 1, j - 1, m, 0, 0));
        f[j][k][1][1] = cha(f[j][k][1][1] + ed);
      }
    memcpy(g, f, sizeof(f));
    for (int a = 0; a <= 1; a++)
      for (int b = 0; b <= 1; b++)
        for (int j = 1; j <= m; j++)
          for (int k = 1; k <= m; k++)
            g[j][k][a][b] = cha(cha(cha(g[j][k][a][b] + g[j - 1][k][a][b]) +
                                    g[j][k - 1][a][b]) +
                                modd - g[j - 1][k - 1][a][b]);
    for (int a = 0; a <= 1; a++)
      for (int b = 0; b <= 1; b++)
        ans = cha(ans + 1ll * g[m][m][a][b] * (n - i + 1) % modd);
  }
  printf("%d\n", ans);
  return 0;
}
