#include <bits/stdc++.h>
using namespace std;
int syk[200000];
int nex[200000 << 1], tar[200000 << 1], fir[200000], cnt, num;
void Add(int a, int b) {
  ++cnt;
  tar[cnt] = b;
  nex[cnt] = fir[a];
  fir[a] = cnt;
}
int n, m, plk, poi, d1, d2, dep[200000], kl[200000], op[200000], h[200000];
bool flag;
void aux(int x, int fa) {
  if (dep[x] > plk) plk = dep[x], poi = x;
  for (int i = fir[x]; i; i = nex[i]) {
    int v = tar[i];
    if (v != fa) {
      dep[v] = dep[x] + 1;
      kl[v] = x;
      aux(v, x);
    }
  }
}
bool cmp(int a, int b) { return h[a] < h[b]; }
void solve(int x, int fa) {
  vector<int> son;
  for (int i = fir[x]; i; i = nex[i]) {
    int v = tar[i];
    if (v == fa) continue;
    son.push_back(v);
  }
  op[x] = 0;
  if (son.size() == 0)
    h[x] = op[x] = 0;
  else if (son.size() == 1) {
    int to = son[0];
    solve(to, x);
    if (op[to] || h[to]) flag = 0;
    op[x] = x, h[x] = h[son[0]] + 1;
  } else if (son.size() == 2) {
    solve(son[0], x), solve(son[1], x);
    if ((op[son[0]] && op[son[1]]) || h[son[0]] != h[son[1]])
      flag = 0;
    else if (op[son[0]] || op[son[1]])
      op[x] = op[son[0]] + op[son[1]];
    h[x] = h[son[0]] + 1;
  } else if (son.size() == 3) {
    solve(son[0], x), solve(son[1], x), solve(son[2], x);
    sort(son.begin(), son.end(), cmp);
    if (op[son[0]] || op[son[1]] || op[son[2]]) flag = 0;
    if (!(h[son[1]] == h[son[0]] && h[son[2]] == h[son[0]] + 1)) flag = 0;
    op[x] = x, h[x] = h[son[2]] + 1;
  } else
    flag = 0;
}
int main() {
  scanf("%d", &n);
  m = (1 << n) - 2;
  for (int i = 1; i < m; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    Add(a, b), Add(b, a);
  }
  poi = plk = dep[1] = 0;
  aux(1, 0);
  d1 = poi;
  poi = plk = dep[d1] = kl[d1] = 0;
  aux(d1, 0);
  d2 = poi;
  int poss = d2;
  while (poss) {
    if (abs(2 * dep[poss] - dep[d2]) <= 1) {
      flag = 1;
      solve(poss, 0);
      if (op[poss] && flag && h[poss] == n - 1) syk[++num] = op[poss];
    }
    poss = kl[poss];
  }
  printf("%d\n", num);
  sort(syk + 1, syk + num + 1);
  for (int i = 1; i <= num; i++) printf("%d%c", syk[i], i == num ? 10 : 32);
}
