#include <bits/stdc++.h>
using namespace std;
struct bomb {
  int x, y;
};
struct three {
  int type, val;
  char dir;
};
bool comp(bomb a, bomb b) {
  return (abs(a.x) + abs(a.y)) < (abs(b.x) + abs(b.y));
}
int main() {
  int n;
  scanf("%d", &n);
  vector<bomb> a(n);
  vector<three> ans;
  for (int i = 0; i < n; i++) scanf("%d%d", &a[i].x, &a[i].y);
  sort(a.begin(), a.end(), comp);
  int curx = 0, cury = 0;
  three x;
  for (int i = 0; i < n; i++) {
    if (a[i].x == curx) {
      if (a[i].y > cury) {
        x.type = 1;
        x.val = a[i].y - cury;
        x.dir = 'U';
        ans.push_back(x);
        cury = a[i].y;
      } else {
        x.type = 1;
        x.val = cury - a[i].y;
        x.dir = 'D';
        ans.push_back(x);
        cury = a[i].y;
      }
    } else if (a[i].y == cury) {
      if (a[i].x > curx) {
        x.type = 1;
        x.val = a[i].x - curx;
        x.dir = 'R';
        ans.push_back(x);
        curx = a[i].x;
      } else {
        x.type = 1;
        x.val = curx - a[i].x;
        x.dir = 'L';
        ans.push_back(x);
        curx = a[i].x;
      }
    } else {
      if (a[i].x > curx) {
        x.type = 1;
        x.val = a[i].x - curx;
        x.dir = 'R';
        ans.push_back(x);
        curx = a[i].x;
      } else {
        x.type = 1;
        x.val = curx - a[i].x;
        x.dir = 'L';
        ans.push_back(x);
        curx = a[i].x;
      }
      if (a[i].y > cury) {
        x.type = 1;
        x.val = a[i].y - cury;
        x.dir = 'U';
        ans.push_back(x);
        cury = a[i].y;
      } else {
        x.type = 1;
        x.val = cury - a[i].y;
        x.dir = 'D';
        ans.push_back(x);
        cury = a[i].y;
      }
    }
    x.type = 2;
    ans.push_back(x);
    if (curx == 0) {
      if (cury > 0) {
        x.type = 1;
        x.val = cury;
        x.dir = 'D';
        ans.push_back(x);
        cury = 0;
      } else {
        x.type = 1;
        x.val = abs(cury);
        x.dir = 'U';
        ans.push_back(x);
        cury = 0;
      }
    } else if (cury == 0) {
      if (curx > 0) {
        x.type = 1;
        x.val = curx;
        x.dir = 'L';
        ans.push_back(x);
        curx = 0;
      } else {
        x.type = 1;
        x.val = abs(curx);
        x.dir = 'R';
        ans.push_back(x);
        curx = 0;
      }
    } else {
      if (curx > 0) {
        x.type = 1;
        x.val = curx;
        x.dir = 'L';
        ans.push_back(x);
        curx = 0;
      } else {
        x.type = 1;
        x.val = abs(curx);
        x.dir = 'R';
        ans.push_back(x);
        curx = 0;
      }
      if (cury > 0) {
        x.type = 1;
        x.val = cury;
        x.dir = 'D';
        ans.push_back(x);
        cury = 0;
      } else {
        x.type = 1;
        x.val = abs(cury);
        x.dir = 'U';
        ans.push_back(x);
        cury = 0;
      }
    }
    x.type = 3;
    ans.push_back(x);
  }
  printf("%d\n", ans.size());
  for (int i = 0; i < ans.size(); i++) {
    printf("%d", ans[i].type);
    if (ans[i].type == 1)
      printf(" %d %c\n", ans[i].val, ans[i].dir);
    else
      printf("\n");
  }
}
