(;AW[hp]AW[gp]AW[ip]AW[jp]AW[kp]AW[kq]AW[gq]AW[gr]AW[fr]AW[jr]AW[ks]AB[kr]AB[lr]AB[ls]AB[lq]AB[lp]AB[lo]AB[ko]AB[io]AB[jo]AB[ho]AB[go]AB[fo]AB[fp]AB[fq]AB[eq]AB[er]AB[es]AB[en]AB[mn]AP[goproblems]
(;B[js];W[ir];B[iq];W[hs]TR[fs]TR[hq])
(;B[fs];W[ir];B[iq];W[hs]TR[hq]TR[js])
(;B[is];W[ir])
(;B[hr];W[ir])
(;B[iq];W[ir]
(;B[js];W[hs]TR[fs]TR[hq])
(;B[hq];W[hs]TR[fs]TR[js])
(;B[fs];W[hs]TR[hq]TR[js]))
(;B[ir];W[iq]
(;B[js];W[hr]
(;B[is];W[hs]C[White lives.])
(;B[jq];W[hs];B[fs];W[jr]C[Black needs 1 ko threat. You can find a much better ko.]))
(;B[is];W[hr]
(;B[hs];W[gs])
(;B[fs];W[hs])
(;B[js];W[hs]C[White lives.]))
(;B[fs];W[is])
(;B[hr];W[is]
(;B[hs];W[hq];B[js];W[gs];B[jq]C[White needs 1 ko threat to live. You can do better, though.])
(;B[js];W[hq]
(;B[hs];W[gs];B[jq]C[White needs 1 ko threat to live. So close!])
(;B[jq]C[Good! White needs 2 ko threats, since Black still has H1.RIGHT])))))