import itertools
from fractions import Fraction

def congruent_nums(it, f):
    its = filter(lambda x: x.denominator == f.denominator and f.numerator % f.denominator == x.numerator % x.denominator, it)
    itsn = map(lambda x: x.numerator, its)
    itsn1, itsn2 = itertools.tee(itsn)
    return filter(lambda x: x > 0, itsn1), filter(lambda x: x < 0, itsn2)
