#include <bits/stdc++.h>
const int MAXN = 160, MAXM = 160, MOD = 1000000007;
int n, m;
int f[MAXM][MAXM][2][2];
int g[MAXM][MAXM][2][2];
int ans;
int sum(int x1, int x2, int s1, int y1, int y2, int s2) {
  if (x1 > x2 || y1 > y2) return 0;
  return ((g[x1 - 1][y1 - 1][s1][s2] + g[x2][y2][s1][s2]) % MOD + MOD -
          (g[x1 - 1][y2][s1][s2] + g[x2][y1 - 1][s1][s2]) % MOD) %
         MOD;
}
int main() {
  scanf("%d%d", &n, &m);
  for (int l = 1; l <= m; ++l) {
    for (int r = l; r <= m; ++r) {
      f[l][r][0][0] = 1;
    }
  }
  for (int i = 1; i <= n; ++i) {
    for (int l = 1; l <= m; ++l) {
      for (int r = 1; r <= m; ++r) {
        for (int s1 = 0; s1 <= 1; ++s1) {
          for (int s2 = 0; s2 <= 1; ++s2) {
            (ans += f[l][r][s1][s2]) %= MOD;
            g[l][r][s1][s2] =
                ((f[l][r][s1][s2] + MOD - g[l - 1][r - 1][s1][s2]) % MOD +
                 (g[l - 1][r][s1][s2] + g[l][r - 1][s1][s2]) % MOD) %
                MOD;
          }
        }
      }
    }
    for (int l = 1; l <= m; ++l) {
      for (int r = l; r <= m; ++r) {
        for (int s1 = 0; s1 <= 1; ++s1) {
          for (int s2 = 0; s2 <= 1; ++s2) {
            f[l][r][s1][s2] = (s1 == 0 && s2 == 0);
            for (int d1 = -1; d1 <= 1; ++d1) {
              if (s1 == 0 && d1 == +1) continue;
              if (s1 == 1 && d1 == -1) continue;
              for (int d2 = -1; d2 <= 1; ++d2) {
                if (s2 == 0 && d2 == -1) continue;
                if (s2 == 1 && d2 == +1) continue;
                for (int ss1 = 0; ss1 <= s1; ++ss1) {
                  if (d1 == 0 && s1 != ss1) continue;
                  for (int ss2 = 0; ss2 <= s2; ++ss2) {
                    if (d2 == 0 && s2 != ss2) continue;
                    int x1, x2, y1, y2;
                    if (d1 == 0) {
                      x1 = x2 = l;
                    } else if (d1 < 0) {
                      x1 = l + 1, x2 = r;
                    } else {
                      x1 = 1, x2 = l - 1;
                    }
                    if (d2 == 0) {
                      y1 = y2 = r;
                    } else if (d2 < 0) {
                      y1 = r + 1, y2 = m;
                    } else {
                      y1 = l, y2 = r - 1;
                    }
                    (f[l][r][s1][s2] += sum(x1, x2, ss1, y1, y2, ss2)) %= MOD;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  printf("%d\n", ans);
}
