#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
const double eps = 1.0e-10;
struct point {
  int x, y;
  int absx, absy;
};
bool cmp(const struct point a, const struct point b) {
  if (a.absx != b.absx) return a.absx < b.absx;
  return a.absy < b.absy;
}
int main() {
  struct point v[100010];
  int n, a, b, ans = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", &a, &b);
    struct point t;
    t.x = a;
    t.y = b;
    t.absx = abs(t.x);
    t.absy = abs(t.y);
    int c = 2;
    if (t.x != 0) c += 2;
    if (t.y != 0) c += 2;
    ans += c;
    v[i] = t;
  }
  sort(v, v + n, cmp);
  printf("%d\n", ans);
  for (int i = 0; i < n; ++i) {
    if (v[i].x > 0) printf("1 %d R\n", v[i].absx);
    if (v[i].x < 0) printf("1 %d L\n", v[i].absx);
    if (v[i].y > 0) printf("1 %d U\n", v[i].absy);
    if (v[i].y < 0) printf("1 %d D\n", v[i].absy);
    printf("2\n");
    if (v[i].x > 0) printf("1 %d L\n", v[i].absx);
    if (v[i].x < 0) printf("1 %d R\n", v[i].absx);
    if (v[i].y > 0) printf("1 %d D\n", v[i].absy);
    if (v[i].y < 0) printf("1 %d U\n", v[i].absy);
    printf("3\n");
  }
}
