You are given an array a of length n and array b of length m both consisting of only integers 0 and 1. Consider a matrix c of size n × m formed by following rule: c_{i, j} = a_i ⋅ b_j (i.e. a_i multiplied by b_j). It's easy to see that c consists of only zeroes and ones too.

How many subrectangles of size (area) k consisting only of ones are there in c?

A subrectangle is an intersection of a consecutive (subsequent) segment of rows and a consecutive (subsequent) segment of columns. I.e. consider four integers x_1, x_2, y_1, y_2 (1 ≤ x_1 ≤ x_2 ≤ n, 1 ≤ y_1 ≤ y_2 ≤ m) a subrectangle c[x_1 ... x_2][y_1 ... y_2] is an intersection of the rows x_1, x_1+1, x_1+2, ..., x_2 and the columns y_1, y_1+1, y_1+2, ..., y_2.

The size (area) of a subrectangle is the total number of cells in it.

Input

The first line contains three integers n, m and k (1 ≤ n, m ≤ 40 000, 1 ≤ k ≤ n ⋅ m), length of array a, length of array b and required size of subrectangles.

The second line contains n integers a_1, a_2, …, a_n (0 ≤ a_i ≤ 1), elements of a.

The third line contains m integers b_1, b_2, …, b_m (0 ≤ b_i ≤ 1), elements of b.

Output

Output single integer — the number of subrectangles of c with size (area) k consisting only of ones.

Examples

Input


3 3 2
1 0 1
1 1 1


Output


4


Input


3 5 4
1 1 1
1 1 1 1 1


Output


14

Note

In first example matrix c is:

<image>

There are 4 subrectangles of size 2 consisting of only ones in it:

<image>

In second example matrix c is:

<image>
def I(): return(list(map(int,input().split())))
def sieve(n):
	a=[1]*n
	for i in range(2,n):
	    if a[i]:
	        for j in range(i*i,n,i):
	            a[j]=0
	return a




n,m,k=I()
a=I()
b=I()
newa=[]
newb=[]
i=0
da={}
db={}
while(i<n):
	while(i<n and a[i]==0):i+=1
	c=0
	j=i
	while(i<n and a[i]==1):
		i+=1
	for subl in range(1,i-j+1):
		if k%subl==0:
			da[subl]=da.get(subl,0)+(i-j+1-subl)


	newa.append(c)
newa.sort()

i=0
while(i<m):
	while(i<m and b[i]==0):i+=1
	c=0
	j=i
	while(i<m and b[i]==1):
		i+=1
		# c+=1
		# db[c]=db.get(c,0)+1
	for subl in range(1,i-j+1):
		db[subl]=db.get(subl,0)+(i-j+1-subl)

	newb.append(c)
newb.sort()
n=len(newb)
m=len(newb)
prefb=[0]*(m+1)

prefb[0]=newb[0]
for i in range(1,m):
	prefb[i]=prefb[i-1]+newb[i]
l=0
r=m-1
ans=0
# print(newa)
# print(newb)
# print(da)
# print(db)
for i in da.keys():
	ans+=da[i]*db.get(k//i,0)

# for i in range(n):
# 	if k%newa[i]==0:
# 		while(r>=0 and newb[r]>=newa[i]//k):r-=1
# 		ans+=(prefb[m]-prefb[r])-(min(m-r,m))*(k//newa[i]+1)
print(ans)



