#include <iostream>
#include <algorithm>
using namespace std;

int N;
long double X[1 << 18], Y[1 << 18];
char C[1 << 18];

long double solve(long double v) {
	long double lx = 1e9, ly = 1e9, rx = -1e9, ry = -1e9;
	
	for (int i = 0; i < N; i++) {
		long double cx = X[i], cy = Y[i];
		if (C[i] == 'L') cx -= v;
		if (C[i] == 'R') cx += v;
		if (C[i] == 'D') cy -= v;
		if (C[i] == 'U') cy += v;
		lx = min(lx, cx); rx = max(rx, cx);
		ly = min(ly, cy); ry = max(ry, cy);
	}
	return (rx - lx) * (ry - ly);
}

int main() {
	cin >> N;
	for (int i = 0; i < N; i++) {
		cin >> X[i] >> Y[i] >> C[i];
	}

	long double cl = 0.0, cr = 1e9, c1, c2, minx = 1e18;
	for (int i = 0; i < 130; i++) {
		c1 = (cl + cl + cr) / 3.0;
		c2 = (cl + cr + cr) / 3.0;
		long double p1 = solve(c1);
		long double p2 = solve(c2);
		if (p1 < p2) { cr = c2; minx = min(minx, p1); }
		else { cl = c1; minx = min(minx, p2); }
	}
	printf("%.13Lf\n", minx);
	return 0;
}