#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using pii = pair<int,int>;
using pll = pair<ll,ll>;
using vi = vector<int>;
using vl = vector<ll>;

using _loop_int = int;
#define REP(i,n) for(_loop_int i=0; i<(_loop_int)(n); i++)
#define FOR(i,a,b) for(_loop_int i=(_loop_int)(a); i<(_loop_int)(b); i++)
#define FORR(i,a,b) for(_loop_int i=(_loop_int)(b)-1; i>=(_loop_int)(a); i--)

#define CHMIN(a,b) (a)=min((a),(b))
#define CHMAX(a,b) (a)=max((a),(b))
#define ALL(v) (v).begin(),(v).end()

#define DEBUG(x) cerr<<#x<<": "<<(x)<<endl
#define DEBUG_VEC(v) cerr<<#v<<": ";REP(__i,(v).size())cerr<<((v)[__i])<<", ";cerr<<endl

const ll MOD = 1000000007ll;

//           R U L D
int dx[4] = {1,0,-1,0};
int dy[4] = {0,1,0,-1};

char buf[10];
int n;
vector<pii> pts[4];

double cxmin = 1e18, cxmax = -1e18;
double cymin = 1e18, cymax = -1e18;
double eval(double t){
    double xmin = cxmin;
    double xmax = cxmax;
    double ymin = cymin;
    double ymax = cymax;
    for(pii P : pts[0]){CHMIN(xmin, P.first+t);  CHMAX(xmax, P.first+t);}
    for(pii P : pts[2]){CHMIN(xmin, P.first-t);  CHMAX(xmax, P.first-t);}
    for(pii P : pts[1]){CHMIN(ymin, P.second+t); CHMAX(ymax, P.second+t);}
    for(pii P : pts[3]){CHMIN(ymin, P.second-t); CHMAX(ymax, P.second-t);}
    return (xmax-xmin)*(ymax-ymin);
}

int main(){
    scanf("%d",&n);
    REP(i,n){
        int x,y,d;
        scanf("%d%d",&x,&y);
        scanf("%s",buf);
        if(buf[0]=='R')d=0;
        if(buf[0]=='U')d=1;
        if(buf[0]=='L')d=2;
        if(buf[0]=='D')d=3;
        pts[d].push_back(pii(x,y));
    }
    // if(pts[0].size()==0 && pts[2].size()==0){
    //     // only U and D
    //     int xmin = 1e9, xmax = -1e9;
    //     for(pii P : pts[1]){
    //         CHMIN(xmin, P.first); CHMAX(xmax, P.first);
    //     }
    //     for(pii P : pts[3]){
    //         CHMIN(xmin, P.first); CHMAX(xmax, P.first);
    //     }
    //     // ternary search
    //     double low = 0.0, high = 1e12;
    //     REP(_,100){
    //         double lx = (low+low+high)/3.0;
    //         double hx = (low+high+high)/3.0;
    //         double lymin = 1e18, lymax = -1e18;
    //         double hymin = 1e18, hymax = -1e18;
    //         for(pii P : pts[1]){
    //             CHMIN(lymin, P.second+lx); CHMAX(lymax, P.second+lx);
    //             CHMIN(hymin, P.second+hx); CHMAX(hymin, P.second+hx);
    //         }
    //         for(pii P : pts[3]){
    //             CHMIN(lymin, P.second-lx); CHMAX(lymax, P.second-lx);
    //             CHMIN(hymin, P.second-hx); CHMAX(hymin, P.second-hx);
    //         }
    //         if(hymax-hymin < lymax-lymin){
    //             low = lx;
    //         }else{
    //             high = hx;
    //         }
    //     }
    //     double t = low;
    //     double ymin = 1e18, ymax = -1e18;
    //     for(pii P : pts[1]){
    //         CHMIN(ymin, P.second+t); CHMAX(ymax, P.second+t);
    //     }
    //     for(pii P : pts[3]){
    //         CHMIN(ymin, P.second-t); CHMAX(ymax, P.second-t);
    //     }
    //     double ans = (xmax - xmin) * (ymax - ymin);
    //     printf("%.9f\n",ans);
    //     return 0;
    // }else if(pts[1].size()==0 && pts[3].size()==0){
    //     // only R and L (copy & paste)
    //     int xmin = 1e9, xmax = -1e9;
    //     for(pii P : pts[0]){
    //         CHMIN(xmin, P.second); CHMAX(xmax, P.second);
    //     }
    //     for(pii P : pts[2]){
    //         CHMIN(xmin, P.second); CHMAX(xmax, P.second);
    //     }
    //     // ternary search
    //     double low = 0.0, high = 1e12;
    //     REP(_,100){
    //         double lx = (low+low+high)/3.0;
    //         double hx = (low+high+high)/3.0;
    //         double lymin = 1e18, lymax = -1e18;
    //         double hymin = 1e18, hymax = -1e18;
    //         for(pii P : pts[0]){
    //             CHMIN(lymin, P.first+lx); CHMAX(lymax, P.first+lx);
    //             CHMIN(hymin, P.first+hx); CHMAX(hymin, P.first+hx);
    //         }
    //         for(pii P : pts[2]){
    //             CHMIN(lymin, P.first-lx); CHMAX(lymax, P.first-lx);
    //             CHMIN(hymin, P.first-hx); CHMAX(hymin, P.first-hx);
    //         }
    //         if(hymax-hymin < lymax-lymin){
    //             low = lx;
    //         }else{
    //             high = hx;
    //         }
    //     }
    //     double t = low;
    //     double ymin = 1e18, ymax = -1e18;
    //     for(pii P : pts[0]){
    //         CHMIN(ymin, P.first+t); CHMAX(ymax, P.first+t);
    //     }
    //     for(pii P : pts[2]){
    //         CHMIN(ymin, P.first-t); CHMAX(ymax, P.first-t);
    //     }
    //     double ans = (xmax - xmin) * (ymax - ymin);
    //     printf("%.9f\n",ans);
    //     return 0;
    // }

    for(pii P : pts[0]){
        CHMIN(cymin, (double)P.second); CHMAX(cymax, (double)P.second);
    }
    for(pii P : pts[2]){
        CHMIN(cymin, (double)P.second); CHMAX(cymax, (double)P.second);
    }
    for(pii P : pts[1]){
        CHMIN(cxmin, (double)P.first);  CHMAX(cxmax, (double)P.first);
    }
    for(pii P : pts[3]){
        CHMIN(cxmin, (double)P.first);  CHMAX(cxmax, (double)P.first);
    }

    double low = 0.0, high = 1e12;
    REP(_,300){
        double lt = (low+low+high)/3.0;
        double ht = (low+high+high)/3.0;
        if(eval(lt) < eval(ht)){
            high = ht;
        }else{
            low = lt;
        }
    }
    printf("%.9f\n",eval(low));
    return 0;
}


Measured memory_bytes: 1276