#include <bits/stdc++.h>
using namespace std;
int inf = 10000000;
long long dx[8] = {0, 1, 0, -1, 0};
long long dy[8] = {1, 0, -1, 0, 1};
int u[31] = {0};
vector<int> edge[40];
long long tx[33];
long long ty[33];
long long q[40];
long long t[40];
int s1, s2;
int d[40];
int main() {
  int n;
  cin >> n;
  long long l = 1 << 30;
  int x, y;
  for (int i = 0; i < n - 1; ++i) {
    scanf("%d%d", &x, &y);
    --x;
    --y;
    edge[x].push_back(y);
    edge[y].push_back(x);
  }
  u[0] = 1;
  q[0] = 0;
  s1 = 1;
  s2 = 0;
  d[0] = 0;
  tx[0] = ty[0] = 0;
  int to;
  int dir;
  int v;
  while (s1 > 0) {
    for (int i = 0; i < s1; ++i) {
      v = q[i];
      dir = (d[v] + 3) % 4;
      if (edge[v].size() > 4) {
        cout << "NO";
        return 0;
      };
      for (int j = 0; j < edge[v].size(); ++j) {
        to = edge[v][j];
        if (!u[to]) {
          u[to] = 1;
          d[to] = dir;
          tx[to] = tx[v] + l * dx[dir];
          ty[to] = ty[v] + l * dy[dir];
          dir = (dir + 1) % 4;
          t[s2++] = to;
        }
      }
    }
    for (int i = 0; i < s2; ++i) q[i] = t[i];
    s1 = s2;
    s2 = 0;
    l /= 2;
  }
  cout << "YES\n";
  for (int i = 0; i < n; ++i) {
    cout << tx[i] << ' ' << ty[i] << '\n';
  }
}
