#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 5;
struct o {
  int x, y;
  o(int x, int y) : x(x), y(y) {}
  bool operator<(const o &a) const {
    return abs(x) + abs(y) < abs(a.x) + abs(a.y);
  }
};
vector<o> V;
int A[MAXN], n, x, y;
int main() {
  while (~scanf("%d", &n)) {
    int ans = 0;
    V.clear();
    for (int i = 0; i < n; i++) {
      scanf("%d%d", &x, &y);
      if (x != 0) ans++;
      if (y != 0) ans++;
      V.push_back(o(x, y));
    }
    ans *= 2;
    ans += n * 2;
    sort(V.begin(), V.end());
    printf("%d\n", ans);
    for (int i = 0; i < n; i++) {
      if (V[i].y > 0) printf("1 %d U\n", abs(V[i].y));
      if (V[i].y < 0) printf("1 %d D\n", abs(V[i].y));
      if (V[i].x > 0) printf("1 %d R\n", abs(V[i].x));
      if (V[i].x < 0) printf("1 %d L\n", abs(V[i].x));
      printf("2\n");
      if (V[i].y > 0) printf("1 %d D\n", abs(V[i].y));
      if (V[i].y < 0) printf("1 %d U\n", abs(V[i].y));
      if (V[i].x > 0) printf("1 %d L\n", abs(V[i].x));
      if (V[i].x < 0) printf("1 %d R\n", abs(V[i].x));
      printf("3\n");
    }
  }
  return 0;
}
