#include <bits/stdc++.h>
using namespace std;
const int OO = 0x3f3f3f3f, N = 1e5 + 5, mod = 1e9 + 7;
const double BI = acos(-1), EPS = 1e-12;
int n, x, y;
vector<pair<int, int>> a1, a2, a3, a4, arr;
vector<pair<pair<int, int>, char>> v;
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", &x, &y);
    if (x >= 0 && y >= 0)
      a1.push_back({abs(x), abs(y)});
    else if (x >= 0 && y <= 0)
      a2.push_back({abs(x), abs(y)});
    else if (x <= 0 && y <= 0)
      a3.push_back({abs(x), abs(y)});
    else if (x <= 0 && y >= 0)
      a4.push_back({abs(x), abs(y)});
  }
  sort(a1.begin(), a1.end());
  sort(a2.begin(), a2.end());
  sort(a3.begin(), a3.end());
  sort(a4.begin(), a4.end());
  for (auto go : a1) arr.push_back(go);
  for (auto go : a2) arr.push_back({go.first, -go.second});
  for (auto go : a3) arr.push_back({-go.first, -go.second});
  for (auto go : a4) arr.push_back({-go.first, go.second});
  for (int i = 0; i < n; ++i) {
    x = arr[i].first, y = arr[i].second;
    if (x > 0) v.push_back({{1, x}, 'R'});
    if (x < 0) v.push_back({{1, -x}, 'L'});
    if (y > 0) v.push_back({{1, y}, 'U'});
    if (y < 0) v.push_back({{1, -y}, 'D'});
    v.push_back({{2, 0}, 0});
    if (x > 0) v.push_back({{1, x}, 'L'});
    if (x < 0) v.push_back({{1, -x}, 'R'});
    if (y > 0) v.push_back({{1, y}, 'D'});
    if (y < 0) v.push_back({{1, -y}, 'U'});
    v.push_back({{3, 0}, 0});
  }
  printf("%d\n", v.size());
  for (auto go : v) {
    if (go.first.first > 1)
      printf("%d\n", go.first.first);
    else
      printf("%d %d %c\n", go.first.first, go.first.second, go.second);
  }
  return 0;
}
