#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
int main() {
    long long N, D; cin >> N >> D;
    vector<vector<long long>> adj(N+1); // occhio 1-based
    for (long long  i = 0; i < N-1; i++) {
        long long u, v; cin >> u >> v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    function<long long(int)> rec = [&](int a) -> long long{
        if (a == 1) return 2;
        return (rec(a-1)%mod)*6;
    };
    cout << rec(D)%mod << "\n";
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |