#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;

vector< char > c;
vector< long long int > x, y;
long long int n;

long double kansu( long double t ) {

  //  cout << " t = " << t << endl;

  if ( t < 0 ) return 1145141919191919191919191919.00L;

  long double xmax = x[0];
  long double xmin = x[0];
  long double ymax = y[0];
  long double ymin = y[0];
  if ( c[0] == 'U' ) {
    ymax += t;
    ymin += t;
  } else if ( c[0] == 'D' ) {
    ymax -= t;
    ymin -= t;
  } else if ( c[0] == 'R' ) {
    xmax += t;
    xmin += t;
  } else if ( c[0] == 'L' ) {
    xmax -= t;
    xmin -= t;
  }

  for ( long long int i = 0; i < n; i++ ) {
    long double xx = x[i];
    long double yy = y[i];
    if ( c[i] == 'U' ) {
      yy += t;
    } else if ( c[i] == 'D' ) {
      yy -= t;
    } else if ( c[i] == 'R' ) {
      xx += t;
    } else if ( c[i] == 'L' ) {
      xx -= t;
    }
    xmax = max( xmax, xx );
    xmin = min( xmin, xx );
    ymax = max( ymax, yy );
    ymin = min( ymin, yy );
  }
  return ( xmax - xmin ) * ( ymax - ymin );

}

int main() {

  cin >> n;

  //uxmax uxmin uymax uymin
  long long int mm[16] = {};
  // U D R L
  bool f[256] = {};

  for ( long long int i = 0; i < n; i++ ) {
    long long int xx, yy;
    char cc;
    cin >> xx >> yy >> cc;
    x.push_back( xx );
    y.push_back( yy );
    c.push_back( cc );

    if ( cc == 'U' ) {
      if ( f[0] == false ) {
	f[0] = true;
	mm[0] = xx;
	mm[1] = xx;
	mm[2] = yy;
	mm[3] = yy;
      } else {
	mm[0] = max( mm[0], xx );
	mm[1] = min( mm[1], xx );
	mm[2] = max( mm[2], yy );
	mm[3] = min( mm[3], yy );
      }
    } else if ( cc == 'D' ) {
      if ( f[1] == false ) {
	f[1] = true;
	mm[4] = xx;
	mm[5] = xx;
	mm[6] = yy;
	mm[7] = yy;
      } else {
	mm[4] = max( mm[4], xx );
	mm[5] = min( mm[5], xx );
	mm[6] = max( mm[6], yy );
	mm[7] = min( mm[7], yy );
      }
    } else if ( cc == 'R' ) {
      if ( f[2] == false ) {
	f[2] = true;
	mm[8] = xx;
	mm[9] = xx;
	mm[10] = yy;
	mm[11] = yy;
      } else {
	mm[8] = max( mm[8], xx );
	mm[9] = min( mm[9], xx );
	mm[10] = max( mm[10], yy );
	mm[11] = min( mm[11], yy );
      }
    } else if ( cc == 'L' ) {
      if ( f[3] == false ) {
	f[3] = true;
	mm[12] = xx;
	mm[13] = xx;
	mm[14] = yy;
	mm[15] = yy;
      } else {
	mm[12] = max( mm[12], xx );
	mm[13] = min( mm[13], xx );
	mm[14] = max( mm[14], yy );
	mm[15] = min( mm[15], yy );
      }
    }
  }

  long double ans = kansu( 0 );
  if ( f[0] == true ) {
    if ( f[1] == true ) {
      ans = min( ans, kansu( 0.50L * ( mm[6] - mm[2] ) ) );
      ans = min( ans, kansu( 0.50L * ( mm[6] - mm[3] ) ) );
      ans = min( ans, kansu( 0.50L * ( mm[7] - mm[2] ) ) );
      ans = min( ans, kansu( 0.50L * ( mm[7] - mm[3] ) ) );
    }
    if ( f[2] == true ) {
      ans = min( ans, kansu( mm[10] - mm[2] ) );
      ans = min( ans, kansu( mm[10] - mm[3] ) );
      ans = min( ans, kansu( mm[11] - mm[2] ) );
      ans = min( ans, kansu( mm[11] - mm[3] ) );
    }
    if ( f[3] == true ) {
      ans = min( ans, kansu( mm[14] - mm[2] ) );
      ans = min( ans, kansu( mm[14] - mm[3] ) );
      ans = min( ans, kansu( mm[15] - mm[2] ) );
      ans = min( ans, kansu( mm[15] - mm[3] ) );
    }
  }
  if ( f[1] == true ) {
    if ( f[2] == true ) {
      ans = min( ans, kansu( mm[6] - mm[10] ) );
      ans = min( ans, kansu( mm[6] - mm[11] ) );
      ans = min( ans, kansu( mm[7] - mm[10] ) );
      ans = min( ans, kansu( mm[7] - mm[11] ) );
    }
    if ( f[3] == true ) {
      ans = min( ans, kansu( mm[6] - mm[14] ) );
      ans = min( ans, kansu( mm[6] - mm[15] ) );
      ans = min( ans, kansu( mm[7] - mm[14] ) );
      ans = min( ans, kansu( mm[7] - mm[15] ) );
    }
  }
  if ( f[2] == true ) {
    if ( f[0] == true ) {
      ans = min( ans, kansu( mm[0] - mm[8] ) );
      ans = min( ans, kansu( mm[0] - mm[9] ) );
      ans = min( ans, kansu( mm[1] - mm[8] ) );
      ans = min( ans, kansu( mm[1] - mm[9] ) );
    }
    if ( f[1] == true ) {
      ans = min( ans, kansu( mm[4] - mm[8] ) );
      ans = min( ans, kansu( mm[4] - mm[9] ) );
      ans = min( ans, kansu( mm[5] - mm[8] ) );
      ans = min( ans, kansu( mm[5] - mm[9] ) );
    }
    if ( f[3] == true ) {
      ans = min( ans, kansu( 0.50L * ( mm[12] - mm[8] ) ) );
      ans = min( ans, kansu( 0.50L * ( mm[12] - mm[9] ) ) );
      ans = min( ans, kansu( 0.50L * ( mm[13] - mm[8] ) ) );
      ans = min( ans, kansu( 0.50L * ( mm[13] - mm[9] ) ) );
    }
  }
  if ( f[3] == true ) {
    if ( f[0] == true ) {
      ans = min( ans, kansu( mm[12] - mm[0] ) );
      ans = min( ans, kansu( mm[12] - mm[1] ) );
      ans = min( ans, kansu( mm[13] - mm[0] ) );
      ans = min( ans, kansu( mm[13] - mm[1] ) );
    }
    if ( f[1] == true ) {
      ans = min( ans, kansu( mm[12] - mm[4] ) );
      ans = min( ans, kansu( mm[12] - mm[5] ) );
      ans = min( ans, kansu( mm[13] - mm[4] ) );
      ans = min( ans, kansu( mm[13] - mm[5] ) );
    }
  }

  cout << fixed << setprecision(2) << ans << endl;

  return 0;

}


Measured memory_bytes: 2036