Use this to learn the idea, then write your own version.
1package main2 3import (4 "bufio"5 . "fmt"6 "io"7 "sort"8)9 1011func CF1684C(_r io.Reader, _w io.Writer) {12 in := bufio.NewReader(_r)13 out := bufio.NewWriter(_w)14 defer out.Flush()15 16 var T, n, m int17o:18 for Fscan(in, &T); T > 0; T-- {19 Fscan(in, &n, &m)20 k := -121 a := make([][]int, n)22 for i := range a {23 a[i] = make([]int, m)24 for j := range a[i] {25 Fscan(in, &a[i][j])26 }27 if !sort.IntsAreSorted(a[i]) {28 k = i29 }30 }31 if k < 0 {32 Fprintln(out, 1, 1)33 continue34 }35 b := append([]int{}, a[k]...)36 sort.Ints(b)37 ps := []int{}38 for j, v := range a[k] {39 if v != b[j] {40 if len(ps) == 2 {41 Fprintln(out, -1)42 continue o43 }44 ps = append(ps, j)45 }46 }47 i, j := ps[0], ps[1]48 for _, r := range a {49 r[i], r[j] = r[j], r[i]50 if !sort.IntsAreSorted(r) {51 Fprintln(out, -1)52 continue o53 }54 }55 Fprintln(out, i+1, j+1)56 }57}58 5960func CF1684C2(_r io.Reader, _w io.Writer) {61 in := bufio.NewReader(_r)62 out := bufio.NewWriter(_w)63 defer out.Flush()64 65 var T, n, m int66o:67 for Fscan(in, &T); T > 0; T-- {68 Fscan(in, &n, &m)69 k := -170 a := make([][]int, n)71 for i := range a {72 a[i] = make([]int, m)73 for j := range a[i] {74 Fscan(in, &a[i][j])75 }76 if !sort.IntsAreSorted(a[i]) {77 k = i78 }79 }80 if k < 0 {81 Fprintln(out, 1, 1)82 continue83 }84 ps := []int{}85 for j := 1; j < m; j++ {86 if a[k][j-1] > a[k][j] {87 if len(ps) == 2 {88 Fprintln(out, -1)89 continue o90 }91 ps = append(ps, j)92 }93 }94 var i, j int95 if len(ps) == 1 {96 j = ps[0]97 i = sort.SearchInts(a[k][:j], a[k][j]+1)98 for _, r := range a {99 r[i], r[j] = r[j], r[i]100 if !sort.IntsAreSorted(r) {101 r[i], r[j] = r[j], r[i]102 goto next103 }104 r[i], r[j] = r[j], r[i]105 }106 Fprintln(out, i+1, j+1)107 continue108 next:109 i = ps[0] - 1110 j = i + sort.SearchInts(a[k][i+1:], a[k][i])111 } else {112 i, j = ps[0]-1, ps[1]113 }114 for _, r := range a {115 r[i], r[j] = r[j], r[i]116 if !sort.IntsAreSorted(r) {117 Fprintln(out, -1)118 continue o119 }120 }121 Fprintln(out, i+1, j+1)122 }123}124 125126