add(p, q)