정점이 N개인 그래프를 만든다. 정점에는 1부터 N까지 번호를 매기고, 각 정점에 K가지 색 중 하나를 칠한다. 색을 칠하는 방법에는 아무 제한이 없다.
색을 다 칠하면 간선을 추가한다. 간선은 다음 두 규칙을 지켜야 한다.
- 1≤j<i≤N이고 정점 i와 정점 j의 색이 서로 다르면, i에서 j로 향하는 간선을 추가할 수 있다. 추가하지 않아도 된다.
- 2≤i≤N인 정점 i에서 나가는 간선은 최대 한 개다. 즉 정점 i의 out-degree가 1을 넘지 않는다.
정점 1에서는 번호가 더 작은 정점이 없으므로 나가는 간선을 만들 수 없다.
두 그래프는 모든 정점의 색이 같고 이어진 간선의 집합도 같을 때 서로 같다고 본다. 예를 들어 N=3, K=2이면 아래 그림처럼 서로 다른 그래프가 24개 나온다.

N과 K가 주어질 때, 서로 다른 그래프의 개수를 1,000,000,007로 나눈 나머지를 구하라.