#include <bits/stdc++.h>
using namespace std;
bool fun(pair<int, int> x1, pair<int, int> x2) {
  pair<int, int> t1, t2;
  t1 = x1;
  t2 = x2;
  if (t1.first < 0) t1.first = t1.first * -1;
  if (t2.first < 0) t2.first = t2.first * -1;
  if (t1.second < 0) t1.second = t1.second * -1;
  if (t2.second < 0) t2.second = t2.second * -1;
  if (t1.first == t2.first)
    return t1.second < t2.second;
  else
    return t1.first < t2.first;
}
int main() {
  int n;
  scanf("%d", &n);
  vector<pair<int, int> > points;
  int k = 0;
  for (int i = 0; i < n; i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    if (x != 0) k += 2;
    if (y != 0) k += 2;
    k += 2;
    points.push_back(make_pair(x, y));
  }
  printf("%d\n", k);
  sort(points.begin(), points.end(), fun);
  for (int i = 0; i < points.size(); i++) {
    if (points[i].first > 0) {
      printf("1 %d R\n", points[i].first);
    } else if (points[i].first < 0) {
      printf("1 %d L\n", points[i].first * -1);
    }
    if (points[i].second > 0) {
      printf("1 %d U\n", points[i].second);
    } else if (points[i].second < 0) {
      printf("1 %d D\n", points[i].second * -1);
    }
    printf("2\n");
    if (points[i].first > 0) {
      printf("1 %d L\n", points[i].first);
    } else if (points[i].first < 0) {
      printf("1 %d R\n", points[i].first * -1);
    }
    if (points[i].second > 0) {
      printf("1 %d D\n", points[i].second);
    } else if (points[i].second < 0) {
      printf("1 %d U\n", points[i].second * -1);
    }
    printf("3\n");
  }
  return 0;
}
