#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long POWER[65];
long long power(long long a, long long b) {
  long long ret = 1;
  while (b) {
    if (b & 1) ret *= a;
    a *= a;
    if (ret >= mod) ret %= mod;
    if (a >= mod) a %= mod;
    b >>= 1;
  }
  return ret;
}
long long inv(long long x) { return power(x, mod - 2); }
void precompute() {
  POWER[0] = 1;
  for (long long i = 1; i < 63; i++) POWER[i] = POWER[i - 1] << 1LL;
}
const long long maxn = 1e5 + 55;
vector<long long> graph[maxn];
bool chk = 0;
long long dfs(long long curr, long long pre) {
  long long cnt = 0;
  for (long long i = 0; i < graph[curr].size(); i++) {
    if (graph[graph[curr][i]].size() == 1) cnt++;
  }
  if (cnt >= 2 && graph[curr].size() > 1) chk = 1;
  for (long long i = 0; i < graph[curr].size(); i++) {
    if (graph[curr][i] == pre) continue;
    dfs(graph[curr][i], curr);
  }
}
long long main() {
std:
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n;
  cin >> n;
  for (long long i = 1; i < n; i++) {
    long long u, v;
    cin >> u >> v;
    graph[u].push_back(v);
    graph[v].push_back(u);
  }
  if (n == 1) {
    cout << "First\n";
    return 0;
  }
  dfs(1, -1);
  for (long long i = 1; i <= n; i++) {
    if (graph[i].size() >= 3) chk = 1;
  }
  if (chk) {
    cout << "First\n";
  } else
    cout << "Second\n";
}
