#include <stdlib.h>
#include <stdio.h>

const int test_value = 10;

const int MaxN = 100010;
int a[MaxN], b[MaxN];
int n, k;

int main() {

	FILE* in = fopen("nzd.in", "r");
	FILE* out = fopen("nzd.out", "r");
	FILE* sol = fopen("nzd.sol", "r");
	FILE* score = fopen("score.tmp", "w");
	
	int A, B;
	bool ok;
	
	// jednakost resenja
	fscanf (sol, "%d", &A);
	if (! feof(out)) {
		fscanf (out, "%d", &B);
		ok = (A == B);
	}
	else 
		ok = false;

	if (ok)
	{
		for (int i = 0; i < 500000000; i++)
		{
			int count = i + i;
		}

		fscanf(in, "%d%d", &n, &k);
		for (int i = 0; i < n; i++)
			fscanf(in, "%d", &a[i]);

		// provera da li ima k brojeva, da su svi veci od 0 i deljivi sa A
		for (int i = 0; i < k && ok; i++)
		{
			if (! feof(out))
			{
				fscanf(out, "%d", &b[i]);
				if (b[i] <= 0) ok = false;
				if (b[i] % A != 0) ok = false;
			}
			else ok = false;
		}

		if (ok)
		{
			int ind = 0;
			// provera za svaki izlazni broj
			for (int i = 0; i < k && ok; i++)
			{
				int sum = 0;
				while (sum < b[i] && ind < n)
				{
					sum += a[ind];
					ind++;
				}
				if (sum != b[i]) ok = false; // provera za jednakost 
			}
			if (ind != n) ok = false; // provera da je dosao do kraja
		}
	}

	fprintf (score, "%d\n", (ok ? test_value : 0));

	fclose(in);
	fclose(out);
	fclose(sol);
	fclose(score);

	return 0;
}