#include<bits/stdc++.h>
using namespace std;
int64_t dp[305][305][305];
static const int64_t mod=1000000007;
int main(){
  int64_t N,M;cin>>N>>M;
  dp[0][1][0]=1;
  for(int64_t i=1;i<=M;i++)
    for(int64_t j=1;j<=N;j++)
      for(int64_t k=0;k<=N-j;k++){
      if(k!=0)
        dp[i][j][k]=(dp[i-1][j][k]*k+dp[i-1][j][k-1]*(N-k+1-j))%mod;
        else{
        int64_t d=(dp[i-1][j][0]*j)%mod;
          for(int64_t l=1;l<=j-1;l++)
            d=(d+(j-l)*dp[i-1][j-l][l])%mod;
          dp[i][j][0]=d;
         }
       }cout<<dp[M][N][0]<<endl;
  return 0;
}