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<cstdio>
#include<cstring>
#include<queue>
#define MOD 1000000009
#define MAXN 2010
#define MAXM 210
using namespace std;
struct Trie {
	bool end;
	int fail, next[2];
	void Init() {
		end = false;
		fail = next[0] = next[1] = 0;
	}
};
Trie tree[MAXN];
int size, bcd[MAXN][10], digit[MAXM], dp[MAXN][MAXM];
char str[MAXM];
void Insert(char *s) {
	int now, t;
	for (now = 0; *s; s++) {
		t = *s - '0';
		if (!tree[now].next[t]) {
			tree[++size].Init();
			tree[now].next[t] = size;
		}
		now = tree[now].next[t];
	}
	tree[now].end = true;
}
void BFS() {
	int now, i, p;
	queue<int> q;
	q.push(0);
	while (!q.empty()) {
		now = q.front();
		q.pop();
		for (i = 0; i < 2; i++) {
			if (tree[now].next[i]) {
				p = tree[now].next[i];
				q.push(p);
				if (now) {
					tree[p].fail = tree[tree[now].fail].next[i];
					tree[p].end |= tree[tree[p].fail].end;
				}
			} else
				tree[now].next[i] = tree[tree[now].fail].next[i];
		}
	}
}
int NEXT(int now, int val) {
	if (tree[now].end)
		return -1;
	int i;
	for (i = 3; i >= 0; i--) {
		now = tree[now].next[val & (1 << i)];
		if (tree[now].end)
			return -1;
	}
	return now;
}
void BCD() {
	int i, j;
	for (i = 0; i <= size; i++) {
		for (j = 0; j < 10; j++)
			bcd[i][j] = NEXT(i, j);
	}
}
int DFS(int rt, int pos, bool bound, bool zero) {
	if (pos < 0)
		return 1;
	if (!bound && dp[rt][pos] != -1)
		return dp[rt][pos];
	int i, limit, ans;
	ans = 0;
	limit = bound ? digit[pos] : 9;
	if (zero && pos) {
		ans += DFS(rt, pos - 1, bound && limit == 0, true);
		if (ans >= MOD)
			ans -= MOD;
	} else {
		if (bcd[rt][0] != -1) {
			ans += DFS(bcd[rt][0], pos - 1, bound && limit == 0, false);
			if (ans >= MOD)
				ans -= MOD;
		}
	}
	for (i = 1; i <= limit; i++) {
		if (bcd[rt][i] != -1) {
			ans += DFS(bcd[rt][i], pos - 1, bound && i == limit, false);
			if (ans >= MOD)
				ans -= MOD;
		}
	}
	if (!bound)
		dp[rt][pos] = ans;
	return ans;
}
int DoIt() {
	int i, len;
	len = strlen(str);
	for (i = 0; i < len; i++)
		digit[len - i - 1] = str[i] - '0';
	return DFS(0, len - 1, true, true);
}
int main() {
	int c, n, i, len, ans;
	scanf("%d", &c);
	memset(dp, -1, sizeof(dp));
	while (c--) {
		scanf("%d", &n);
		tree[0].Init();
		for (size = 0; n--;) {
			scanf(" %s", str);
			Insert(str);
		}
		BFS();
		BCD();
		scanf(" %s", str);
		len = strlen(str);
		for (i = len - 1; i >= 0; i--) {
			if (str[i] > '0') {
				str[i]--;
				break;
			} else
				str[i] = '9';
		}
		ans = -DoIt();
		scanf(" %s", str);
		ans += DoIt();
		printf("%d\n", ans);
	}
	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
#define FOR(i, s, n) for(int i = s; i < (int)n; i++)
#define per(i, n) for(int i = n; i >= 0; i--)
#define ROF(i, s, n) for(int i = s; i >= (int)n; i--)
#define FORIT(i, A) for (auto i : A)
#define PRINT(x) cout << (x) << "\n"
#define ALL(a) (a).begin(),(a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define MP make_pair
#define EACH(i, n) for (__typeof((n).begin()) i = (n).begin(); i != (n).end(); ++i)
#define SZ(a) int((a).size())
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define SORT(c) sort((c).begin(),(c).end())
#define CLR(a) memset((a), 0 ,sizeof(a))
#define NCLR(a) memset((a), -1 ,sizeof(a))
#define dump(x) cout << #x << " = " << (x) << "\n";
#define debug(x) cout << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << "\n";
#define sq(n) (n) * (n)
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<string> VS;
typedef pair<int, int> PII;
typedef long long LL;
typedef vector<LL> VLL;
typedef vector<VLL> VVLL;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef priority_queue<int> maxpq;
typedef priority_queue< int, vector<int>, greater<int> > minpq;
typedef complex<double> P;
static const double EPS = 1e-10;
static const double PI = acos( -1.0 );
static const int mod = 1000000007;
static const int INF = 1 << 29;
static const LL LL_INF = 1152921504606846976;
static const int dx[] = { -1, 0, 1, 0, 1, -1, 1, -1 };
static const int dy[] = { 0, -1, 0, 1, 1, 1, -1, -1 };


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

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

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

C++: #include<stdio.h>
main(i,j){
	for(i=1;i<10;i++){for(j=1;j<10;j++){printf("%dx%d=%d\n",i,j,i*j);}}}

C++: #include <bits/stdc++.h>
using namespace std;

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

C++: #include<stdio.h>

int main(){
	int a,b,c;
	for(a=1;a<=9;a++){
		for(b=1;b<=9;b++){
			c=a*b;
			printf("%dx%d=%d,a,b,c);
		}
	}

    return 0;
}

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

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

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

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

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

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

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

C++: #include <bits/stdc++.h>
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 a = 1; a < 10; ++a) for (int b = 1; b < 10; ++b) cout << a << "x" << b << "=" << a * b << "\n";
    return 0;
}

C++: #include <iostream>
#include <cstdio>
 
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 <iostream>
using namespace std;

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

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

int main(){
	for(int i = 1;i <= 9;i++){
		for(int j = 1;j <= 9;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 << "*" << j << "=" << i*j << endl;
		}
	}
	return 0;
}

C++: #include <iostream>

using namespace std;

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

  return 0;
}

C++: # AOJ 0000

for x in range(1,10):
	for y in range(1,10):
		print str(x)+"x"+str(y)+"="+str(x*y)

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

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

C++: #include<stdio.h>

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

C++: aa

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