BMW reaches agreement with unions to cut costs