// F - Minimum Bounding Box
#include <bits/stdc++.h>

using namespace std;

#define	EPS	1e-9

int n;
vector<pair<long long, long long> > p, m;

double calc(double t)
{
	double minx = 1e18, miny = 1e18, maxx = -1e18, maxy = -1e18;
	for (int i = 0; i < n; i++) {
		double x = p[i].first + t * m[i].first, y = p[i].second + t * m[i].second;
		minx = min(minx, x); maxx = max(maxx, x);
		miny = min(miny, y); maxy = max(maxy, y);
	}
	return (maxx - minx) * (maxy - miny);
}

int main(int argc, char *argv[])
{
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

	cin >> n;
	for (int i = 0; i < n; i++) {
		long long x, y;
		string s;
		cin >> x >> y >> s;
		p.resize(n), m.resize(n);
		p[i] = make_pair(x, y);
		if (s[0] == 'R')      m[i] = make_pair(1, 0);
		else if (s[0] == 'L') m[i] = make_pair(-1, 0);
		else if (s[0] == 'U') m[i] = make_pair(0, 1);
		else if (s[0] == 'D') m[i] = make_pair(0, -1);
	}

	double l = 0, r = 1e9, ans = 1e18;
	for (int k = 0; k < 200; k++) {
		double m1 = l + (r - l) / 3, m2 = r - (r - l) / 3;
		double r1 = calc(m1), r2 = calc(m2);
		ans = min(ans, r1);
		ans = min(ans, r2);
		if (r1 > r2) l = m1;
		else r = m2;
	}
	cout << fixed << setprecision(15) << ans << endl;

	return 0;
}
