Пересечение прямых

На плоскости даны две прямые. Каждая прямая задается 
парой точек, через которые она проходит.
Требуется установить, пересекаются ли эти прямые и
найти координаты точки пересечения.

Входные данные
Вводятся сначала координаты двух различных точек,
через которые проходит первая прямая, а затем -
координаты еще двух различных (но, быть может, 
совпадающих с первыми двумя) точек, через которые
проходит вторая прямая. Координаты каждой
точки - целые числа, по модулю не превышающие 1000.

Выходные данные
Если прямые не пересекаются, выведите одно число 0.
Если прямые совпадают, выведите 2.
Если прямые пересекаются ровно в одной точке, 
то выведите сначала число 1, а затем два вещественных 
числа - координаты точки пересечения (не меньше, чем с 3 знаками после
десятичной точки).

Пример входного файла
1 1 2 2
1 10 2 11

Пример выходного файла
0

Пример входного файла
0 0 1 1
1 0 -1 2

Пример выходного файла
1 0.500 0.500