#include <bits/stdc++.h>
using namespace std;
long long MOD = 1e9 + 7;
vector<int> v[40];
long long a[31 + 1], b[31 + 1], p[33];
void dfs(int id, int parent, long long x, long long y, int t, int d) {
  a[id] = x;
  b[id] = y;
  if (v[id].size() > 4) {
    cout << "NO" << endl;
    exit(0);
  }
  int j = -3;
  for (int i = 0; i < v[id].size(); ++i) {
    if (v[id][i] != parent) {
      if (j + d == 0) j += 2;
      if (j == -3) dfs(v[id][i], id, x - p[32 - t], y, t + 1, -3);
      if (j == -1) dfs(v[id][i], id, x, y - p[32 - t], t + 1, -1);
      if (j == 1) dfs(v[id][i], id, x, y + p[32 - t], t + 1, 1);
      if (j == 3) dfs(v[id][i], id, x + p[32 - t], y, t + 1, 3);
      j += 2;
    }
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  p[0] = 1;
  for (int i = 1; i < 33; ++i) {
    p[i] = p[i - 1] * 2;
  }
  int n, x, y;
  cin >> n;
  for (int i = 0; i < n - 1; ++i) {
    cin >> x >> y;
    v[x].push_back(y);
    v[y].push_back(x);
  }
  dfs(1, -1, 0, 0, 0, 0);
  cout << "YES" << endl;
  for (int i = 0; i < n; ++i) {
    cout << a[i + 1] << " " << b[i + 1] << endl;
  }
  return 0;
}
