#include <bits/stdc++.h>
using namespace std;
int n, k, i, j, p, ans, dp[510][510], mi2[510000];
int main() {
  scanf("%d%d", &n, &k);
  dp[0][0] = 1;
  for (mi2[0] = 1, i = 1; i <= n * n; i++) mi2[i] = 2 * mi2[i - 1] % 1000000007;
  for (i = 1; i <= n; i++)
    for (j = 1; j <= k; j++)
      for (p = 0; p < i; p++)
        dp[i][j] =
            (dp[i][j] + 1LL * dp[p][j - 1] * (mi2[i - p] - 1) % 1000000007 *
                            mi2[(i - p) * (n - i)] % 1000000007) %
            1000000007;
  for (i = 0; i <= n; i++) ans = (ans + dp[i][k]) % 1000000007;
  printf("%d\n", (ans + 1000000007) % 1000000007);
}
