  We consider integer programming problems $\max \{ c^T x : \mathcal{A} x = b,
l \leq x \leq u, x \in \mathbb{Z}^{nt}\}$ where $\mathcal{A}$ has a (recursive)
block-structure generalizing "$n$-fold integer programs" which recently
received considerable attention in the literature. An $n$-fold IP is an integer
program where $\mathcal{A}$ consists of $n$ repetitions of submatrices $A \in
\mathbb{Z}^{r \times t}$ on the top horizontal part and $n$ repetitions of a
matrix $B \in \mathbb{Z}^{s \times t}$ on the diagonal below the top part.
Instead of allowing only two types of block matrices, one for the horizontal
line and one for the diagonal, we generalize the $n$-fold setting to allow for
arbitrary matrices in every block. We show that such an integer program can be
solved in time $n^2 t^2 {\phi} \cdot (rs{\Delta})^{\mathcal{O}(rs^2+ sr^2)}$
(ignoring logarithmic factors). Here ${\Delta}$ is an upper bound on the
largest absolute value of an entry of $\mathcal{A}$ and ${\phi}$ is the largest
binary encoding length of a coefficient of $c$. This improves upon the
previously best algorithm of Hemmecke, Onn and Romanchuk that runs in time
$n^3t^3 {\phi} \cdot {\Delta}^{\mathcal{O}(t^2s)}$. In particular, our
algorithm is not exponential in the number $t$ of columns of $A$ and $B$.
  Our algorithm is based on a new upper bound on the $l_1$-norm of an element
of the "Graver basis" of an integer matrix and on a proximity bound between the
LP and IP optimal solutions tailored for IPs with block structure. These new
bounds rely on the "Steinitz Lemma".
  Furthermore, we extend our techniques to the recently introduced "tree-fold
IPs", where we again present a more efficient algorithm in a generalized
setting.
