\documentclass[ tikz,
border=5mm]{standalone}
% partly based on Loop Space answer on question
% \url{http://tex.stackexchange.com/questions/31687/bending-snakes-with-xy-pic}
\usepackage{amsmath}
\usetikzlibrary{arrows.meta, calc, matrix, quotes}
\DeclareMathOperator{\im}{im}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,
nodes in empty cells,
nodes={minimum height=4ex,text depth=0.5ex},
column sep={2.5cm,between origins},
row sep={2cm,between origins}]
{
& 0 & 0 & 0 & \\
%2
0 & \ker\alpha & \ker\beta & \ker\gamma & \\
%3
0 & \vert M & N & P & 0 \\
%4
0 & M' & N' & P' & 0 \\
%5
& M'/\im\alpha & N'/\im\beta & P'/\im\gamma & 0 \\
%6
& 0 & 0 & 0 & \\
};
%%%% Horizontal arrows,
% 2nd row
\draw[dotted,->] (m-2-1) -- (m-2-2);
\draw[dashed,->] (m-2-2) -- (m-2-3);
\draw[dashed,->] (m-2-3) -- (m-2-4);
\draw[dashed, ->] (m-2-4) to[out=0,in=180] (m-5-2);
% 3th row
\draw[dotted,->] (m-3-1) -- (m-3-2);
\draw[->] (m-3-2) -- (m-3-3);
\draw[->] (m-3-3) -- (m-3-4);
\draw[->] (m-3-4) -- (m-3-5);
% 4th row
\draw[->] (m-4-1) -- (m-4-2);
\draw[->] (m-4-2) -- (m-4-3);
\draw[->] (m-4-3) -- (m-4-4);
\draw[dotted,->] (m-4-4) -- (m-4-5);
% 5th row
\draw[dashed,->] (m-5-2) -- (m-5-3);
\draw[dashed,->] (m-5-3) -- (m-5-4);
\draw[dotted,->] (m-5-4) -- (m-5-5);
%%%% Vertical arrows
% 2nd column
\foreach \i in {2,3,4}
\foreach \j [count=\jx from 1] in {2,...,6}
{
\draw[->] (m-\jx-\i) -- (m-\j-\i);
}
% nodes on arrows in 3th row
\path (m-3-2) to["$\alpha$"] (m-4-2)
(m-3-3) to["$\beta$" ] (m-4-3)
(m-3-4) to["$\gamma$"] (m-4-4);
\end{tikzpicture}
\end{document}