  We propose simple polynomial-time algorithms for two linear conic feasibility
problems. For a matrix $A\in \mathbb{R}^{m\times n}$, the kernel problem
requires a positive vector in the kernel of $A$, and the image problem requires
a positive vector in the image of $A^\top$. Both algorithms iterate between
simple first order steps and rescaling steps. These rescalings improve natural
geometric potentials. If Goffin's condition measure $\rho_A$ is negative, then
the kernel problem is feasible and the worst-case complexity of the kernel
algorithm is $O\left((m^3n+mn^2)\log{|\rho_A|^{-1}}\right)$; if $\rho_A>0$,
then the image problem is feasible and the image algorithm runs in time
$O\left(m^2n^2\log{\rho_A^{-1}}\right)$. We also extend the image algorithm to
the oracle setting.
  We address the degenerate case $\rho_A=0$ by extending our algorithms to find
maximum support nonnegative vectors in the kernel of $A$ and in the image of
$A^\top$. In this case the running time bounds are expressed in the bit-size
model of computation: for an input matrix $A$ with integer entries and total
encoding length $L$, the maximum support kernel algorithm runs in time
$O\left((m^3n+mn^2)L\right)$, while the maximum support image algorithm runs in
time $O\left(m^2n^2L\right)$. The standard linear programming feasibility
problem can be easily reduced to either maximum support problems, yielding
polynomial-time algorithms for Linear Programming.
