#include <bits/stdc++.h>
using namespace std;
template <typename T>
T sqr(const T &x) {
  return x * x;
}
const long double INF = 1e9;
const long double EPS = 1e-9;
const int N = 110;
bool lcmp(pair<int, int> a, pair<int, int> b) { return a.first > b.first; }
bool rcmp(pair<int, int> a, pair<int, int> b) { return a.first < b.first; }
bool mucmp(pair<int, int> a, pair<int, int> b) { return a.second < b.second; }
bool mdcmp(pair<int, int> a, pair<int, int> b) { return a.second > b.second; }
int main() {
  int n;
  cin >> n;
  vector<pair<int, int> > left, midup, middown, right;
  int cnt = 0;
  for (int i = 0; i < int(n); ++i) {
    pair<int, int> cur;
    scanf("%d %d", &cur.first, &cur.second);
    cnt += 4;
    if (cur.first == 0) {
      if (cur.second < 0) {
        middown.push_back(cur);
      } else {
        midup.push_back(cur);
      }
    } else {
      if (cur.second != 0) {
        cnt += 2;
      }
      if (cur.first < 0) {
        left.push_back(cur);
      } else {
        right.push_back(cur);
      }
    }
  }
  sort(midup.begin(), midup.end(), mucmp);
  sort(middown.begin(), middown.end(), mdcmp);
  sort(left.begin(), left.end(), lcmp);
  sort(right.begin(), right.end(), rcmp);
  printf("%d\n", cnt);
  for (int i = 0; i < int(midup.size()); ++i) {
    printf("1 %d U\n", midup[i].second);
    printf("2\n");
    printf("1 %d D\n", midup[i].second);
    printf("3\n");
  }
  for (int i = 0; i < int(middown.size()); ++i) {
    printf("1 %d D\n", -middown[i].second);
    printf("2\n");
    printf("1 %d U\n", -middown[i].second);
    printf("3\n");
  }
  for (int i = 0; i < int(left.size()); ++i) {
    if (left[i].second < 0) {
      printf("1 %d D\n", -left[i].second);
    }
    if (left[i].second > 0) {
      printf("1 %d U\n", left[i].second);
    }
    printf("1 %d L\n", -left[i].first);
    printf("2\n");
    printf("1 %d R\n", -left[i].first);
    if (left[i].second < 0) {
      printf("1 %d U\n", -left[i].second);
    }
    if (left[i].second > 0) {
      printf("1 %d D\n", left[i].second);
    }
    printf("3\n");
  }
  for (int i = 0; i < int(right.size()); ++i) {
    if (right[i].second < 0) {
      printf("1 %d D\n", -right[i].second);
    }
    if (right[i].second > 0) {
      printf("1 %d U\n", right[i].second);
    }
    printf("1 %d R\n", right[i].first);
    printf("2\n");
    printf("1 %d L\n", right[i].first);
    if (right[i].second < 0) {
      printf("1 %d U\n", -right[i].second);
    }
    if (right[i].second > 0) {
      printf("1 %d D\n", right[i].second);
    }
    printf("3\n");
  }
  return 0;
}
