Go: // 九九を出すだけ
package main
import (
	"fmt"
	"os"
	"bufio"
)
var out = bufio.NewWriter(os.Stdout)

func main(){
	defer out.Flush()
	for i:=1; i<10; i++{
		for j:=1; j<10; j++{
			fmt.Fprintf(out, "%dx%d=%d\n", i, j, i*j)
		}
	}
}

C++: #include<iostream>
using namespace std;

int main(){
	for (int i = 1; i < 10; i++) {
		for (int j = 1; j < 10; j++) {
			std::cout << i << "x" << j << "=" << i * j << std::endl;
		}
	}
    return 0;
}

C++: #include<iostream>
using namespace std;

int main(){

for(int i = 1; i < 10; i++){
for(int j = 1; j < 10; j++){
cout << i << 'x' << j << '=' << i*j << endl;
}
}
    return 0;
}

C++: #include<iostream>
using namespace std;

int main(){
  for(int i=1;i<10;i++){
    for(int j=1;j<10;j++){
      cout << i << "x" << j << "=" << i * j << endl;
    }
  }
  return 0;
}

C++: #include<iostream>
using namespace std;

int main(){
	int a;
	for(int i = 1 ; i <= 9 ; i++){
		for(int b = 1 ; b <= 9 ; b++){
		a = i * b;
		cout<<i<<"x"<<b<<"="<<a<<endl;
		}
	}

	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
	int i,j;
	for(i=1; i<=9; i++){
		for(j=1; j<=9; j++)
			cout << i << "x" << j << "=" << i*j << endl;
	}
}

C++: #include <iostream>

int main(int argc, char** argv)
{
  for (int i = 1; i <= 9; i ++)
    for (int j = 1; j <= 9; j ++)
      std::cout << i << 'x' << j << '=' << i * j << std::endl;
}

C++: /*
    ????????°??§???????????¨????????????
*/

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <limits.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <iterator>
#include <vector>
#include <map>
#include <utility>
#define LLU unsigned long long int
#define LL long long int
#define LD long double
using namespace std;
#define LLUmax ULLONG_MAX
#define LLmax LLONG_MAX
#define dmax INT_MAX
#define vd vector<int>
#define vLL vector<long long int>
#define vLLU vector<unsigned long long int> 
#define pb push_back
#define mp make_pair
#define fi first
#define sec second
#define debug printf("asd\n")
#define debugd(a) printf("--%d\n",a)
#define debugdd(a,b) printf("--%d %d\n",a,b)
#define debugarr(a,b) for(int i=0 ; i<b ; i++)printf("%d ",a[i]);printf("\n")
#define newline printf("\n")
#define forin(a,b,c) for(int a=b ; a<c ; a++)
#define forde(a,b,c) for(int a=b ; a<c ; a--)


inline void scd(int &a){scanf("%d",&a);}
inline void scdd(int &a,int &b){scanf("%d %d",&a,&b);}
inline void sctd(int &a,int &b,int &c){scanf("%d %d %d",&a,&b,&c);}
inline void scdlld(long int &a,long int &b){scanf("%I64d %I64d",&a,&b);}
inline void sclld(long long int &a){scanf("%I64d",&a);}

#define scarrd(a,b) for(int index=0 ; index<b ; index++)scanf("%d",&a[index])
#define prdlld(a,b) printf("%I64d %I64d",a,b)
#define prdd(a,b) printf("%d %d",a,b)
#define prd(a) printf("%d",a)
#define prarr(a,b) for(int i=0 ; i<b ; i++)printf("%d ",a[i])
#define iniarr(a,b) for(int i=0 ; i<b ;i++)a[i]=0
#define arr(a,b) int *a=(int *)malloc(b*sizeof(int))
#define llarr(a,b) long long int *a=(long long int *)malloc(b*sizeof(long long int))
#define st(a,b) char *a=(char *)malloc(b*sizeof(char))
#define grav 9.8
#define pi 3.14159265

int main()
{	
	forin(i,1,10)
	{
		forin(j,1,10)
		{
			printf("%dx%d=%d\n",i,j,i*j);
		}
	}
	return 0;
}

C++: int a[100000000];

int main()
{
for (int i = 0; i < 100000000; i++) a[i] = -1;
return 0;
}

C++: #include<stdio.h>

int main(){
	int i,j;
	for(i=1;i<10;i++){
		for(j=1;j<10;j++){
			printf("%dx%d=%d\n",i,j,i*j);
		}
	}
	return 0;
}

C++: #include<iostream>
using namespace std;

int main(){
    for( int i = 1; i < 10; i++){
        for( int j = 1; j < 10; j++){
            cout << i << 'x' << j << '=' << i * j << endl;
        }
    }
    return 0;
}

C++: #include <bits/stdc++.h>

using namespace std;

int main(){
	for(int i = 1; i <= 9; i++){
		for(int j = 1; j <= 9; j++){
			printf("%dx%d=%d\n", i, j, i * j);
		}
	}
	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<string> vs;
typedef vector<bool> vb;
typedef vector<vb> vvb;
typedef pair<int, int> pii;
typedef long long ll;
typedef unsigned long long ull;
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(), (a).rend()
#define pb push_back
#define mp make_pair
#define loop(i,a,b) for(ull i=(a);i<ull(b);++i)
#define rep(i,n) loop(i,0,n)
#define iter(i,c) for(auto i=(c).begin(); i!=(c).end(); ++i)
#define riter(i,c) for(auto i=(c).rbegin(); i!=(c).rend(); ++i)
const double eps = 1e-10;
const double pi = acos(-1.0);
const double inf = (int)1e8;

int main(){
  rep(i,9)rep(j,9){
    cout << i+1 << "x" << j+1 << "=" << (i+1)*(j+1) << endl;
  }
}

C++: #include <cstdio>

using namespace std;

int main ()
{
	for (int i=1;i<=9;i++)
	{
		for (int t=1;t<=i;t++)
		{
			printf ("%dx%d=%d\n",i,t,i*t);
		}
	}
	return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <bitset>
#include <ctime>
#include <algorithm>
using namespace std;

#define FOR(i,a,b) for (int i = a; i < b; ++i)

#define sz 2601

vector< bitset<sz> > p;
int a[55][55];

int abs(int x) {
	return x >= 0 ? x : -x;
}

int gcd(int a, int b) {
	return b ? gcd(b, a % b) : a;
}

bool in(int x, int y, int n, int m) {
	return x >= 0 && x < n && y >= 0 && y < m;
}

int init(int n, int m) {
	p.clear(); bitset<sz> cur;
	FOR(i, 0, n) FOR(j, 0, m) FOR(ii, i + 1, n) FOR(jj, 0, m) {
		if (jj == j) continue;
		int g = gcd(ii - i, abs(jj - j));
		if (g != 1 || in(i - g, j - g, n, m)) continue;
		bool ok = true;
		cur.reset();
		int x = i, y = j, dx = ii - i, dy = jj - j;
		while (in(x, y, n, m)) {
			if (a[x][y] == 0) {
				ok = false;
				break;
			}
			cur[x * n + y] = 1;
			x += dx, y += dy;
		}
		if (ok && cur.count() >= 3) p.push_back(cur);
	}
	FOR(i, 0, n) {
		cur.reset();
		bool ok = true;
		FOR(j, 0, m) {
			if (a[i][j] == 0) { ok = false; break; }
			cur[i * n + j] = 1;
		}
		if (ok && cur.count() >= 3) p.push_back(cur);
	}
	FOR(j, 0, m) {
		cur.reset();
		bool ok = true;
		FOR(i, 0, n) {
			if (a[i][j] == 0) { ok = false; break; }
			cur[i * n + j] = 1;
		}
		if (ok && cur.count() >= 3) p.push_back(cur);
	}
	return p.size();
}

int solve(int n, int m, int tot) {
	int ans = 0;
	random_shuffle(p.begin(), p.end());
	while (true) {
		bitset<sz> cur;
		cur.reset();
		FOR(i, 0, n) FOR(j, 0, m) if (a[i][j]) cur[i * n + j] = 1;
		if (cur.count() == 0) break;
		int id = -1, num = -1;
		FOR(i, 0, tot) {
			int now = (cur & p[i]).count();
			if (now != p[i].count() || now <= num) continue;
			num = now, id = i;
		}
		//cout << id << " " << num << endl;
		if (id == -1) return -1;
		FOR(i, 0, n) FOR(j, 0, m) if (p[id][i * n + j]) --a[i][j];
		++ans;
	}
	return ans;
}

int main()
{
	int t, n, m;
	scanf( "%d", &t );
	while (t--) {
		scanf( "%d%d", &n, &m );
		++n, ++m;
		FOR(i, 0, n) FOR(j, 0, m) scanf( "%d", &a[i][j] );
		int tot = init(n, m);
		//cout << tot << endl;
		int ans = -1;
		while (ans == -1) ans = solve(n, m, tot);
		printf( "%d\n", ans );
	}
	return 0;
}

C++: null

C++: #include<iostream>
using namespace std;

int main(){
for(int i=1;i<=9;i++){
for(int i=j;j<=9;j++){
if(i>=j){
cout << i << "x" << j << "=" << i*j << endl;
}
else
{
break;
}
}
}
    return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cassert>
#include <vector>
#include <string>
#include <cmath>
#include <map> 
#include <sstream>
#include <cstdio>
#include <complex>
#include <cstring>
using namespace std;
 
const int MAX= 10000100;

#define loop(i,a,b) for(int i = a ; i < b ; i ++)
#define rep(i,a) loop(i,0,a)
#define all(a) (a).begin(),(a).end()
#define ll long long int
#define gcd(a,b) __gcd(a,b)
#define pb(a) push_back(a)
int GCD(int a, int b) {if(!b) return a; return gcd(b, a%b);}
int lcm(int a, int b) {return a*b / gcd(a, b);}

int main(void){
  loop(i,1,10)loop(j,1,10)cout<<i<<"x"<<j<<"="<<i*j<<endl;
}