#include <bits/stdc++.h>
using namespace std;
bool cmp(pair<int, int> p1, pair<int, int> p2) {
  return abs(p1.first) + abs(p1.second) < abs(p2.first) + abs(p2.second);
}
string convertToString(int n) {
  n = abs(n);
  string ret;
  while (n) ret += (n % 10) + '0', n /= 10;
  reverse(ret.begin(), ret.end());
  return ret;
}
int main() {
  int N, x, y;
  string s;
  vector<string> ans;
  vector<pair<int, int> > points;
  cin >> N;
  for (int i = 0; i < N; i++) {
    cin >> x >> y;
    points.push_back(make_pair(x, y));
  }
  sort(points.begin(), points.end(), cmp);
  for (int i = 0; i < points.size(); i++) {
    x = points[i].first;
    y = points[i].second;
    s = "1 ";
    if (x != 0) {
      s += convertToString(x);
      if (x < 0)
        s += " L";
      else
        s += " R";
      ans.push_back(s);
      s = "1 ";
    }
    if (y != 0) {
      s += convertToString(y);
      if (y < 0)
        s += " D";
      else
        s += " U";
      ans.push_back(s);
      s = "1 ";
    }
    ans.push_back("2");
    if (x != 0) {
      s += convertToString(x);
      if (x < 0)
        s += " R";
      else
        s += " L";
      ans.push_back(s);
      s = "1 ";
    }
    if (y != 0) {
      s += convertToString(y);
      if (y < 0)
        s += " U";
      else
        s += " D";
      ans.push_back(s);
      s = "1 ";
    }
    ans.push_back("3");
  }
  cout << ans.size() << endl;
  for (int i = 0; i < ans.size(); i++) cout << ans[i] << endl;
  return 0;
}
