Topology optimization using the p-version of the finite element method