Matching in bipartite graphs I'm studying graph theory and the follow question is driving me crazy. Any hint in any direction would be appreciated.
Here is the question:

Let $G = G[X, Y]$ be a bipartite graph in which each vertex in $X$ is of odd degree. Suppose that any two distinct vertices of $X$ have an even number of common neighbours.
  Show that $G$ has matching covering every vertex of $X$.


Hint for one possible solution:
Consider the adjacency matrix $M\in\Bbb F_2^{|X|\times|Y|}$ of the bipartite graph, i.e. 
$$M_{x,y}:=\left\{ \begin{align} 1 & \text{ if }x,y \text{ are adjacent} 
 \\ 0 & \text{ else} \end{align} \right. $$ 
then try to prove, it has rank $|X|$, and then, I think, using Gaussian elimination (perhaps only on the selected linearly independent columns) would produce a proper matching..
