#include <bits/stdc++.h>
using namespace std;
template <typename Arg1>
void __f(const char* name, Arg1&& arg1) {
  cerr << name << " : " << arg1 << '\n';
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args) {
  const char* comma = strchr(names + 1, ',');
  cerr.write(names, comma - names) << " : " << arg1 << " | ";
  __f(comma + 1, args...);
}
const long long maxn = 2 * (long long)1e5 + 10;
const long double EPS = 1e-9;
const long long INF = (long long)1e18 + 18;
const long long mod = (long long)1e9 + 9;
long long n;
inline bool cmp(pair<long long, long long> l, pair<long long, long long> r) {
  if (abs(l.second) == abs(r.second)) return abs(l.first) < abs(r.first);
  return abs(l.second) < abs(r.second);
}
string get(long long x, long long y, long long mode) {
  string ret;
  if (mode) {
    if (x > 0 && y > 0) {
      ret = "1 " + to_string(x) + " R\n1 " + to_string(y) + " U";
    } else if (x < 0 && y > 0) {
      ret = "1 " + to_string(-x) + " L\n1 " + to_string(y) + " U";
    } else if (x < 0 && y < 0) {
      ret = "1 " + to_string(-x) + " L\n1 " + to_string(-y) + " D";
    } else
      ret = "1 " + to_string(x) + " R\n1 " + to_string(-y) + " D";
  } else {
    if (x > 0 && y > 0) {
      ret = "1 " + to_string(x) + " L\n1 " + to_string(y) + " D";
    } else if (x < 0 && y > 0) {
      ret = "1 " + to_string(-x) + " R\n1 " + to_string(y) + " D";
    } else if (x < 0 && y < 0) {
      ret = "1 " + to_string(-x) + " R\n1 " + to_string(-y) + " U";
    } else
      ret = "1 " + to_string(x) + " L\n1 " + to_string(-y) + " U";
  }
  return ret;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  long long cnt = 0;
  vector<string> ans;
  vector<pair<long long, long long> > vec;
  for (long long i = 0; i < n; i++) {
    long long x, y;
    cin >> x >> y;
    vec.push_back(make_pair(x, y));
  }
  sort(vec.begin(), vec.end(), cmp);
  for (long long i = 0; i < n; i++) {
    long long x = vec[i].first, y = vec[i].second;
    if (x == 0) {
      string s = "1 " + to_string(abs(y)) + (y > 0 ? " U" : " D");
      ans.push_back(s);
      s = "2";
      ans.push_back(s);
      s = "1 " + to_string(abs(y)) + (y > 0 ? " D" : " U");
      ans.push_back(s);
      ans.push_back("3");
      cnt += 4;
    } else if (y == 0) {
      string s = "1 " + to_string(abs(x)) + (x > 0 ? " R" : " L");
      ans.push_back(s);
      s = "2";
      ans.push_back(s);
      s = "1 " + to_string(abs(x)) + (x > 0 ? " L" : " R");
      ans.push_back(s);
      ans.push_back("3");
      cnt += 4;
    } else {
      string s = get(x, y, 1);
      ans.push_back(s);
      ans.push_back("2");
      s = get(x, y, 0);
      ans.push_back(s);
      ans.push_back("3");
      cnt += 6;
    }
  }
  cout << cnt << '\n';
  for (auto it : ans) cout << it << '\n';
  return 0;
}
