#include <bits/stdc++.h>
using namespace std;
int compare(pair<int, int> a, pair<int, int> b) {
  return (((a.first < 0) ? -a.first : a.first) +
          ((a.second < 0) ? -a.second : a.second)) <
         (((b.first < 0) ? -b.first : b.first) +
          ((b.second < 0) ? -b.second : b.second));
}
void print(int x, int y) {
  if (x > 0)
    printf("1 %d R\n", x);
  else if (x < 0)
    printf("1 %d L\n", -x);
  if (y > 0)
    printf("1 %d U\n", y);
  else if (y < 0)
    printf("1 %d D\n", -y);
  printf("2\n");
  if (x < 0)
    printf("1 %d R\n", -x);
  else if (x > 0)
    printf("1 %d L\n", x);
  if (y < 0)
    printf("1 %d U\n", -y);
  else if (y > 0)
    printf("1 %d D\n", y);
  printf("3\n");
}
int main() {
  int n, step = 0;
  std::vector<pair<int, int> > vec;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    vec.push_back(std::make_pair(x, y));
    if (((x < 0) ? -x : x)) step += 2;
    if (((y < 0) ? -y : y)) step += 2;
    step += 2;
  }
  std::sort(vec.begin(), vec.begin() + n, compare);
  printf("%d\n", step);
  for (int i = 0; i < vec.size(); i++) {
    pair<int, int> p = vec[i];
    print(p.first, p.second);
  }
  return 0;
}
