#include <bits/stdc++.h>
using namespace std;

template<typename T>
void out(T x) { cout << x << endl; exit(0); }
#define watch(x) cout << (#x) << " is " << (x) << endl





using ll = long long;


const int maxn = 1e6 + 5;
const ll inf = 1e12;


int n;
double x[maxn], y[maxn];
char d[maxn];


double sim(double t) {
    double xlo=inf,xhi=-inf,ylo=inf,yhi=-inf;
    for (int i=0; i<n; i++) {
	double X = x[i];
	double Y = y[i];
	if (d[i]=='U') Y += t;
	if (d[i]=='D') Y -= t;
	if (d[i]=='L') X -= t;
	if (d[i]=='R') X += t;
	xlo=min(xlo,X);
	xhi=max(xhi,X);
	ylo=min(ylo,Y);
	yhi=max(yhi,Y);
    }

    return (xhi-xlo)*(yhi-ylo);
}

const double eps = 1e-7;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(0);  cout.tie(0);

    cin>>n;
    for (int i=0; i<n; i++) {
	cin>>x[i]>>y[i]>>d[i];
    }

    double lo = 0;
    double hi = 2e8;


    for (int iter=0; iter<500; iter++) {
	double mid1 = lo + (hi-lo)/3;
	double mid2 = hi - (hi-lo)/3;
	double res1 = sim(mid1);
	double res2 = sim(mid2);
	if (res1 < res2) {
	    hi = mid2;
	} else {
	    lo = mid1;	    
	}
    }

    cout<<fixed<<setprecision(12)<<sim(lo)<<endl;    
    return 0;
}
