#include <bits/stdc++.h>   using namespace std;   const int NMax = 101000;   int N;   vector<pair<int, int> > A, B, C, D;   bool cmp1(pair<int, int> a, pair<int, int> b) {     if (a.first < b.first) return 1;     if (a.first > b.first) return 0;     if (a.second < b.second) return 1;     return 0;   }   bool cmp2(pair<int, int> a, pair<int, int> b) {     if (a.first < b.first) return 1;     if (a.first > b.first) return 0;     if (a.second > b.second) return 1;     return 0;   }   bool cmp3(pair<int, int> a, pair<int, int> b) {     if (a.first > b.first) return 1;     if (a.first < b.first) return 0;     if (a.second > b.second) return 1;     return 0;   }   bool cmp4(pair<int, int> a, pair<int, int> b) {     if (a.first > b.first) return 1;     if (a.first < b.first) return 0;     if (a.second < b.second) return 1;     return 0;   }   int main() {     scanf( %d , &N);     for (int i = 1; i <= N; i++) {       int first, second;       scanf( %d%d , &first, &second);       if (first >= 0 && second >= 0)         A.push_back(make_pair(first, second));       else if (first >= 0 && second <= 0)         B.push_back(make_pair(first, second));       else if (first <= 0 && second <= 0)         C.push_back(make_pair(first, second));       else         D.push_back(make_pair(first, second));     }     int ret = 0;     for (int i = 0; i < A.size(); i++) {       if (A[i].first) ret += 2;       if (A[i].second) ret += 2;       ret += 2;     }     for (int i = 0; i < B.size(); i++) {       if (B[i].first) ret += 2;       if (B[i].second) ret += 2;       ret += 2;     }     for (int i = 0; i < C.size(); i++) {       if (C[i].first) ret += 2;       if (C[i].second) ret += 2;       ret += 2;     }     for (int i = 0; i < D.size(); i++) {       if (D[i].first) ret += 2;       if (D[i].second) ret += 2;       ret += 2;     }     printf( %d n , ret);     sort(A.begin(), A.end(), cmp1);     for (int i = 0; i < A.size(); i++) {       if (A[i].first) printf( 1 %d R n , A[i].first);       if (A[i].second) printf( 1 %d U n , A[i].second);       printf( 2 n );       if (A[i].second) printf( 1 %d D n , A[i].second);       if (A[i].first) printf( 1 %d L n , A[i].first);       printf( 3 n );     }     sort(B.begin(), B.end(), cmp2);     for (int i = 0; i < B.size(); i++) {       if (B[i].first) printf( 1 %d R n , B[i].first);       if (B[i].second) printf( 1 %d D n , -B[i].second);       printf( 2 n );       if (B[i].second) printf( 1 %d U n , -B[i].second);       if (B[i].first) printf( 1 %d L n , B[i].first);       printf( 3 n );     }     sort(C.begin(), C.end(), cmp3);     for (int i = 0; i < C.size(); i++) {       if (C[i].first) printf( 1 %d L n , -C[i].first);       if (C[i].second) printf( 1 %d D n , -C[i].second);       printf( 2 n );       if (C[i].second) printf( 1 %d U n , -C[i].second);       if (C[i].first) printf( 1 %d R n , -C[i].first);       printf( 3 n );     }     sort(D.begin(), D.end(), cmp4);     for (int i = 0; i < D.size(); i++) {       if (D[i].first) printf( 1 %d L n , -D[i].first);       if (D[i].second) printf( 1 %d U n , D[i].second);       printf( 2 n );       if (D[i].second) printf( 1 %d D n , D[i].second);       if (D[i].first) printf( 1 %d R n , -D[i].first);       printf( 3 n );     }     return 0;   }