#include <iostream>
#include <vector>
int main()
{
// 長さ N の数列
int N;
std::cin >> N;
// A を % 46 の結果に応じて分類して, それぞれの個数を記録
std::vector<int> am(46);
for (int i = 0; i < N; ++i)
{
int a;
std::cin >> a;
++am[a % 46];
}
// B を % 46 の結果に応じて分類して, それぞれの個数を記録
std::vector<int> bm(46);
for (int i = 0; i < N; ++i)
{
int b;
std::cin >> b;
++bm[b % 46];
}
// C を % 46 の結果に応じて分類して, それぞれの個数を記録
std::vector<int> cm(46);
for (int i = 0; i < N; ++i)
{
int c;
std::cin >> c;
++cm[c % 46];
}
// 成立する組み合わせの合計数
long long count = 0;
for (int a = 0; a < 46; ++a)
{
for (int b = 0; b < 46; ++b)
{
for (int c = 0; c < 46; ++c)
{
// 合計が 46 の倍数になる (a, b, c) の組み合わせパターンであるなら
if ((a + b + c) % 46 == 0)
{
count += (1LL * am[a] * bm[b] * cm[c]); // long long で計算
}
}
}
}
// 解答を出力
std::cout << count << '\n';
}