Finding a perfect matching in a D-Regular bipartite graph