#!/usr/bin/env python3

SCALE = 5*10**8

def read_p():
    (x, y, r) = input().split()
    r = 'NP-'.find(r)
    x = int(x)
    y = int(y)
    return 6*SCALE*(2*x+y+SCALE) + 3*(-2*x+y+SCALE) + r

def dec(v):
    w = v
    r = v % 3
    v //= 3
    y = v % (2*SCALE) - SCALE
    v //= 2*SCALE
    x = v - SCALE
    return (x, y, r)

n = int(input())
P = sorted([read_p() for _ in range(n)])

min_neg = 1<<60
ans = 0
for i in range(n):
    (_, y, r) = dec(P[i])
    if y >= min_neg:
        if r == 1:
            ans = -n-1
        P[i] -= P[i] % 3
    elif r == 0:
        min_neg = y
max_seen = max_taken = -(1<<60)
for (_, y, r) in map(dec, reversed(P)):
    if r == 0: continue
    max_seen = max(max_seen, y)
    if r == 1 and y > max_taken:
        ans += 1
        max_taken = max_seen
print(ans if ans >= 0 else 'impossible')
