#include <bits/stdc++.h>
using namespace std;
typedef struct command {
  long long type, k;
  char dir;
} cmd;
bool customComparator(pair<long long, long long> p1,
                      pair<long long, long long> p2) {
  if (abs(p1.first) + abs(p1.second) <= abs(p2.second) + abs(p2.first))
    return true;
  else
    return false;
}
void Onigiri() {
  long long n;
  cin >> n;
  vector<pair<long long, long long>> v(n);
  for (long long i = 0; i < n; i++) cin >> v[i].first >> v[i].second;
  sort(v.begin(), v.end(), customComparator);
  vector<cmd> v2;
  for (long long i = 0; i < n; i++) {
    cmd temp;
    if (v[i].first != 0) {
      temp.type = 1;
      temp.k = abs(v[i].first);
      temp.dir = (v[i].first > 0) ? 'R' : 'L';
      v2.push_back(temp);
    }
    if (v[i].second != 0) {
      temp.type = 1;
      temp.k = abs(v[i].second);
      temp.dir = (v[i].second > 0) ? 'U' : 'D';
      v2.push_back(temp);
    }
    temp.type = 2;
    v2.push_back(temp);
    if (v[i].first != 0) {
      temp.type = 1;
      temp.k = abs(v[i].first);
      temp.dir = (v[i].first > 0) ? 'L' : 'R';
      v2.push_back(temp);
    }
    if (v[i].second != 0) {
      temp.type = 1;
      temp.k = abs(v[i].second);
      temp.dir = (v[i].second > 0) ? 'D' : 'U';
      v2.push_back(temp);
    }
    temp.type = 3;
    v2.push_back(temp);
  }
  cout << v2.size() << endl;
  for (auto x : v2) {
    if (x.type == 1) {
      cout << 1 << " " << x.k << " " << x.dir << "\n";
    } else
      cout << x.type << "\n";
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long t = 1;
  while (t--) {
    Onigiri();
    cout << "\n";
  }
  cerr << "\n" << (float)clock() / CLOCKS_PER_SEC * 1000 << " ms" << endl;
  return 0;
}
