#include <bits/stdc++.h>
using namespace std;
const int MAX = 100010;
int n;
struct step {
  int f, s;
  char c;
};
pair<int, int> bombs[MAX];
step steps[MAX * 10];
bool srt(pair<int, int> p1, pair<int, int> p2) {
  if (abs(p1.first) != abs(p2.first)) return abs(p1.first) < abs(p2.first);
  return abs(p1.second) < abs(p2.second);
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &bombs[i].first, &bombs[i].second);
  }
  sort(bombs, bombs + n, srt);
  int ind = 0;
  for (int i = 0; i < n; i++) {
    if (bombs[i].first) {
      steps[ind++] = {1, abs(bombs[i].first), (bombs[i].first > 0 ? 'R' : 'L')};
    }
    if (bombs[i].second) {
      steps[ind++] = {1, abs(bombs[i].second),
                      (bombs[i].second > 0 ? 'U' : 'D')};
    }
    steps[ind++] = {2, 0, '0'};
    if (bombs[i].first) {
      steps[ind++] = {1, abs(bombs[i].first), (bombs[i].first > 0 ? 'L' : 'R')};
    }
    if (bombs[i].second) {
      steps[ind++] = {1, abs(bombs[i].second),
                      (bombs[i].second > 0 ? 'D' : 'U')};
    }
    steps[ind++] = {3, 0, '0'};
  }
  printf("%d\n", ind);
  for (int i = 0; i < ind; i++) {
    printf("%d", steps[i].f);
    if (steps[i].c != '0') {
      printf(" %d %c", steps[i].s, steps[i].c);
    }
    printf("\n");
  }
  return 0;
}
