#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
long long f[502][502], b[502 * 502], ans;
int n, k;
int main() {
  int i, j, x;
  scanf("%d%d", &n, &k);
  if (k == 0)
    puts("1");
  else {
    for (b[0] = i = 1; i <= n * n; ++i) b[i] = (b[i - 1] * 2) % mod;
    f[0][0] = 1;
    ans = 0;
    for (i = 1; i <= n; ++i) {
      for (j = 1; j <= k; ++j)
        for (x = 0; x < i; ++x)
          f[i][j] = (f[i][j] + ((b[i - x] - 1) * b[x * (i - x)] % mod) *
                                   f[x][j - 1] % mod) %
                    mod;
      ans = (ans + f[i][k] * b[i * (n - i)] % mod) % mod;
    }
    printf("%I64d\n", ans);
  }
}
