#include<bits/stdc++.h>
//ios::sync_with_stdio(false);
//cin.tie(0);
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<pii,int> ppii;
typedef pair<int,pii> pipi;
typedef pair<ll,ll> pll;
typedef pair<pll,ll> ppll;
typedef pair<ll,pll> plpl;
typedef tuple<ll,ll,ll> tl;
ll mod=1000000007;
ll mod2=998244353;
ll inf=1000000000000000000;
double pi=2*acos(0);
#define rep(i,m,n) for(int i=m;i<n;i++)
#define rrep(i,n,m) for(int i=n;i>=m;i--)
int dh[4]={1,-1,0,0};
int dw[4]={0,0,1,-1};
int ddh[8]={-1,-1,-1,0,0,1,1,1};
int ddw[8]={-1,0,1,-1,1,-1,0,1};
ll lmax(ll a,ll b){
    if(a<b)return b;
    else return a;
}
ll lmin(ll a,ll b){
    if(a<b)return a;
    else return b;
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    ll n;cin>>n;
    ll x[n],y[n];
    char d[n];
    rep(i,0,n)cin>>x[i]>>y[i]>>d[i];
    vector<ll> v[4];
    int num=-1;
    ll ma=-1000000000000;
    rep(i,0,n){
        if(d[i]=='R'&&x[i]>ma){
            ma=x[i];
            num=i;
        }
    }
    if(num!=-1)v[0].push_back(num);
    num=-1;
    ma=-1000000000000;
    rep(i,0,n){
        if(d[i]=='L'&&x[i]>ma){
            ma=x[i];
            num=i;
        }
    }
    if(num!=-1)v[0].push_back(num);
    num=-1;
    ma=-1000000000000;
    rep(i,0,n){
        if((d[i]=='U'||d[i]=='D')&&x[i]>ma){
            ma=x[i];
            num=i;
        }
    }
    if(num!=-1)v[0].push_back(num);
    num=-1;
    ma=1000000000000;
    rep(i,0,n){
        if(d[i]=='R'&&x[i]<ma){
            ma=x[i];
            num=i;
        }
    }
    if(num!=-1)v[1].push_back(num);
    num=-1;
    ma=1000000000000;
    rep(i,0,n){
        if(d[i]=='L'&&x[i]<ma){
            ma=x[i];
            num=i;
        }
    }
    if(num!=-1)v[1].push_back(num);
    num=-1;
    ma=1000000000000;
    rep(i,0,n){
        if((d[i]=='U'||d[i]=='D')&&x[i]<ma){
            ma=x[i];
            num=i;
        }
    }
    if(num!=-1)v[1].push_back(num);
    num=-1;
    ma=-1000000000000;
    rep(i,0,n){
        if(d[i]=='U'&&y[i]>ma){
            ma=y[i];
            num=i;
        }
    }
    if(num!=-1)v[2].push_back(num);
    num=-1;
    ma=-1000000000000;
    rep(i,0,n){
        if(d[i]=='D'&&y[i]>ma){
            ma=y[i];
            num=i;
        }
    }
    if(num!=-1)v[2].push_back(num);
    num=-1;
    ma=-1000000000000;
    rep(i,0,n){
        if((d[i]=='L'||d[i]=='R')&&y[i]>ma){
            ma=y[i];
            num=i;
        }
    }
    if(num!=-1)v[2].push_back(num);
    num=-1;
    ma=1000000000000;
    rep(i,0,n){
        if(d[i]=='U'&&y[i]<ma){
            ma=y[i];
            num=i;
        }
    }
    if(num!=-1)v[3].push_back(num);
    num=-1;
    ma=1000000000000;
    rep(i,0,n){
        if(d[i]=='D'&&y[i]<ma){
            ma=y[i];
            num=i;
        }
    }
    if(num!=-1)v[3].push_back(num);
    num=-1;
    ma=1000000000000;
    rep(i,0,n){
        if((d[i]=='R'||d[i]=='L')&&y[i]<ma){
            ma=y[i];
            num=i;
        }
    }
    if(num!=-1)v[3].push_back(num);
    vector<double> w;
    w.push_back(0);
    rep(i,0,4){
        rep(j,0,v[i].size()-1){
            rep(k,j+1,v[i].size()){
                if(i<=1){
                    ll f=x[v[i][j]],g=x[v[i][k]];
                    if(d[v[i][j]]=='R'){
                        if(d[v[i][k]]=='L'){
                            if(g>f)w.push_back((g-f)/2.0);
                        }
                        else{
                            if(g>f)w.push_back(g-f);
                        }
                    }
                    else{
                        if(g<f)w.push_back(f-g);
                    }
                }
                else{
                    ll f=y[v[i][j]],g=y[v[i][k]];
                    if(d[v[i][j]]=='U'){
                        if(d[v[i][k]]=='D'){
                            if(g>f)w.push_back((g-f)/2.0);
                        }
                        else{
                            if(g>f)w.push_back(g-f);
                        }
                    }
                    else{
                        if(g<f)w.push_back(f-g);
                    }
                }
            }
        }
    }
    double ans=40000000000000000;
    rep(i,0,w.size()){
        double xma=-1000000000,xmi=1000000000,yma=-1000000000,ymi=1000000000;
        rep(j,0,v[0].size()){
            double h=x[v[0][j]];
            if(d[v[0][j]]=='R')h+=w[i];
            if(d[v[0][j]]=='L')h-=w[i];
            xma=max(xma,h);
        }
        rep(j,0,v[1].size()){
            double h=x[v[1][j]];
            if(d[v[1][j]]=='R')h+=w[i];
            if(d[v[1][j]]=='L')h-=w[i];
            xmi=min(xmi,h);
        }
        rep(j,0,v[2].size()){
            double h=y[v[2][j]];
            if(d[v[2][j]]=='U')h+=w[i];
            if(d[v[2][j]]=='D')h-=w[i];
            yma=max(yma,h);
        }
        rep(j,0,v[3].size()){
            double h=y[v[3][j]];
            if(d[v[3][j]]=='U')h+=w[i];
            if(d[v[3][j]]=='D')h-=w[i];
            ymi=min(ymi,h);
        }
        ans=min(ans,(xma-xmi)*(yma-ymi));
    }
    cout<<fixed<<setprecision(12)<<ans<<endl;
}


Measured memory_bytes: 1920