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

const long long ma=1000000000LL;
const long long mi=-1000000000LL;

long long xrma=mi,xrmi=ma,xtma=mi,xtmi=ma,xlma=mi,xlmi=ma,yuma=mi,yumi=ma,ytma=mi,ytmi=ma,ydma=mi,ydmi=ma;
double ans=1e17;

void mys(double t)
{
	double xma=(double)mi,xmi=(double)ma,yma=(double)mi,ymi=(double)ma;
	if (xrma!=mi)
	{
		xma=max(xma,(double)xrma+t);
	}
	if (xtma!=mi)
	{
		xma=max(xma,(double)xtma);
	}
	if (xlma!=mi)
	{
		xma=max(xma,(double)xlma-t);
	}
	if (xrmi!=ma)
	{
		xmi=min(xmi,(double)xrmi+t);
	}
	if (xtmi!=ma)
	{
		xmi=min(xmi,(double)xtmi);
	}
	if (xlmi!=ma)
	{
		xmi=min(xmi,(double)xlmi-t);
	}
	if (yuma!=mi)
	{
		yma=max(yma,(double)yuma+t);
	}
	if (ytma!=mi)
	{
		yma=max(yma,(double)ytma);
	}
	if (ydma!=mi)
	{
		yma=max(yma,(double)ydma-t);
	}
	if (yumi!=ma)
	{
		ymi=min(ymi,(double)yumi+t);
	}
	if (ytmi!=ma)
	{
		ymi=min(ymi,(double)ytmi);
	}
	if (ydmi!=ma)
	{
		ymi=min(ymi,(double)ydmi-t);
	}
	ans=min(ans,(xma-xmi)*(yma-ymi));
}

int main(int argc, char const *argv[])
{
	int n;
	cin>>n;
	long long x,y;
	char d;
	for (int i = 0; i < n; ++i)
	{
		cin>>x>>y>>d;
		if (d=='R')
		{
			xrma=max(xrma,x);
			xrmi=min(xrmi,x);
			ytma=max(ytma,y);
			ytmi=min(ytmi,y);
		}
		else if (d=='L')
		{
			xlma=max(xlma,x);
			xlmi=min(xlmi,x);
			ytma=max(ytma,y);
			ytmi=min(ytmi,y);
		}
		else if (d=='U')
		{
			xtma=max(xtma,x);
			xtmi=min(xtmi,x);
			yuma=max(yuma,y);
			yumi=min(yumi,y);
		}
		else if (d=='D')
		{
			xtma=max(xtma,x);
			xtmi=min(xtmi,x);
			ydma=max(ydma,y);
			ydmi=min(ydmi,y);
		}
	}
	double t=.0;
	mys(t);
	if (xrma!=mi)
	{
		if (xtma!=mi)
		{
			t=(double)xtma-xrma;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (xtmi!=ma)
		{
			t=(double)xtmi-xrma;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (xlma!=mi)
		{
			t=(double)(xlma-xrma)/2.0;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (xlmi!=ma)
		{
			t=(double)(xlmi-xrma)/2.0;
			if (t>-0.2)
			{
				mys(t);
			}
		}
	}
	if (xrmi!=ma)
	{
		if (xtma!=mi)
		{
			t=(double)xtma-xrmi;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (xtmi!=ma)
		{
			t=(double)xtmi-xrmi;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (xlma!=mi)
		{
			t=(double)(xlma-xrmi)/2.0;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (xlmi!=ma)
		{
			t=(double)(xlmi-xrmi)/2.0;
			if (t>-0.2)
			{
				mys(t);
			}
		}
	}
	if (xtma!=mi)
	{
		if (xlma!=mi)
		{
			t=(double)xlma-xtma;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (xlmi!=ma)
		{
			t=(double)xlmi-xtma;
			if (t>-0.2)
			{
				mys(t);
			}
		}
	}
	if (xtmi!=ma)
	{
		if (xlma!=mi)
		{
			t=(double)xlma-xtmi;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (xlmi!=ma)
		{
			t=(double)xlmi-xtmi;
			if (t>-0.2)
			{
				mys(t);
			}
		}
	}


	if (yuma!=mi)
	{
		if (ytma!=mi)
		{
			t=(double)ytma-yuma;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (ytmi!=ma)
		{
			t=(double)ytmi-yuma;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (ydma!=mi)
		{
			t=(double)(ydma-yuma)/2.0;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (ydmi!=ma)
		{
			t=(double)(ydmi-yuma)/2.0;
			if (t>-0.2)
			{
				mys(t);
			}
		}
	}
	if (yumi!=ma)
	{
		if (ytma!=mi)
		{
			t=(double)ytma-yumi;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (ytmi!=ma)
		{
			t=(double)ytmi-yumi;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (ydma!=mi)
		{
			t=(double)(ydma-yumi)/2.0;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (ydmi!=ma)
		{
			t=(double)(ydmi-yumi)/2.0;
			if (t>-0.2)
			{
				mys(t);
			}
		}
	}
	if (ytma!=mi)
	{
		if (ydma!=mi)
		{
			t=(double)ydma-ytma;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (ydmi!=ma)
		{
			t=(double)ydmi-ytma;
			if (t>-0.2)
			{
				mys(t);
			}
		}
	}
	if (ytmi!=ma)
	{
		if (ydma!=mi)
		{
			t=(double)ydma-ytmi;
			if (t>-0.2)
			{
				mys(t);
			}
		}
		if (ydmi!=ma)
		{
			t=(double)ydmi-ytmi;
			if (t>-0.2)
			{
				mys(t);
			}
		}
	}
	printf("%.10f\n", ans);
	return 0;
}


Measured memory_bytes: 384