#include <bits/stdc++.h>
using namespace std;
vector<string> ans;
bool cmp(pair<long long, long long> a, pair<long long, long long> b) {
  if (abs(a.first) < abs(b.first))
    return true;
  else if (abs(a.first) > abs(b.first))
    return false;
  else {
    if (abs(a.second) < abs(b.second))
      return true;
    else if (abs(a.second) > abs(b.second))
      return false;
  }
}
void mymain() {
  long long n;
  cin >> n;
  vector<pair<long long, long long> > pt(n);
  for (long long i = 0; i < n; i++) {
    cin >> pt[i].first >> pt[i].second;
  }
  sort(pt.begin(), pt.end(), cmp);
  for (pair<long long, long long> p : pt) {
    long long x = p.first, y = p.second;
    string a, xx, yy;
    long long sz = 0;
    if (x != 0) {
      sz++;
      string aa;
      aa = to_string(abs(x));
      if (x < 0) {
        a = "1 " + aa + " L";
      } else {
        a = "1 " + aa + " R";
      }
      ans.push_back(a);
      xx = a;
    }
    if (y != 0) {
      sz++;
      string aa;
      aa = to_string(abs(y));
      if (y < 0) {
        a = "1 " + aa + " D";
      } else {
        a = "1 " + aa + " U";
      }
      ans.push_back(a);
      yy = a;
    }
    sz++;
    ans.push_back("2");
    if (yy.size() != 0) {
      if (yy[yy.size() - 1] == 'U')
        yy[yy.size() - 1] = 'D';
      else if (yy[yy.size() - 1] == 'D')
        yy[yy.size() - 1] = 'U';
      ans.push_back(yy);
    }
    if (xx.size() != 0) {
      if (xx[xx.size() - 1] == 'L')
        xx[xx.size() - 1] = 'R';
      else if (xx[xx.size() - 1] == 'R')
        xx[xx.size() - 1] = 'L';
      ans.push_back(xx);
    }
    ans.push_back("3");
  }
  cout << ans.size() << '\n';
  for (string s : ans) {
    cout << s << '\n';
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  long long t = 1;
  for (long long tt = 0; tt < t; tt++) {
    mymain();
  }
  return 0;
}
