// sandeep_007
#include <bits/stdc++.h>
using namespace std;
#define PI acos(-1)
#define mod 1000000007
#define ll long long
#define nitro std::ios_base::sync_with_stdio (false); cin.tie(NULL)
#define pb push_back
#define mp make_pair
#define vi vector < int >
bool sortbysec(const pair<int,int> &a,
const pair<int,int> &b){
return (a.second < b.second);
}
inline ll mx(ll a,ll b){
if(a > b) return a;
else return b;
}
ll gcd(ll a,ll b){if(b==0) return a; else return gcd(b,a%b);}
ll power(ll x,ll y,ll p){
ll res = 1;
x = x % p;
while (y > 0){
if (y & 1)
res = (res*x) % p;
y = y>>1;
x = (x*x) % p;
}
return res;
}
int main(){
nitro;
//prime(10000000);
#ifdef DBG
freopen("in","r",stdin);
#endif
ll n;
cin >> n;
map<ll,ll> mymap;
for(ll k=0;k<n;k++){
ll m;
cin >> m;
ll c = 0;
map<ll,ll> mymap2;
for(ll j=0;j<m;j++){
ll a;
cin >> a;
if(k == 0){
c=0;
while(a%2 == 0){
a=a/2;
c++;
}
if(mymap.find(2) == mymap.end())
mymap[2] = c;
else
mymap[2] += c;
for(ll i=3;i<=sqrt(a);i+=2){
if(a%i == 0){
c = 0;
while(a%i == 0){
a = a/i;
c+=1;
}
if(mymap.find(i) == mymap.end())
mymap[i] = c;
else
mymap[i] += c;
}
}
if(a > 2)
if(mymap.find(a) == mymap.end())
mymap[a] = 1;
else
mymap[a] += 1;
}
else{
if(a%2 == 0){
c=0;
while(a%2 == 0){
a=a/2;
c+=1;
}
if(mymap2.find(2) == mymap2.end())
mymap2[2] = c;
else
mymap[2] += c;
}
for(int j=3;j<=sqrt(a);j+=2){
if(a%j == 0){
c=0;
while(a%j == 0){
a=a/j;
c+=1;
}
if(mymap2.find(j) == mymap2.end())
mymap2[j] = c;
else
mymap2[j] += c;
}
}
if(a > 2){
if(mymap2.find(a) == mymap2.end())
mymap2[a] = 1;
else
mymap2[a] += 1;
}
}
}
if(k > 0){
map < ll,ll>::iterator it;
it = mymap.begin();
while(it != mymap.end()){
if(mymap2.find(it->first) == mymap2.end())
mymap[it->first] = 0;
else
mymap[it->first] = min(mymap[it->first],mymap2[it->first]);
it++;
}
}
}
map < ll ,ll>::iterator it;
it = mymap.begin();
ll ans = 1;
while(it != mymap.end()){
ans = (ans*power(it->first,it->second,mod))%mod;
it++;
}
cout << ans << "\n";
return 0;
}
Ly8gc2FuZGVlcF8wMDcJCiAKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAojZGVmaW5lIFBJIGFjb3MoLTEpCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDcKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBuaXRybyBzdGQ6Omlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8gKGZhbHNlKTsgY2luLnRpZShOVUxMKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHZpIHZlY3RvciA8IGludCA+Cgpib29sIHNvcnRieXNlYyhjb25zdCBwYWlyPGludCxpbnQ+ICZhLAogICAgICAgICAgICAgIGNvbnN0IHBhaXI8aW50LGludD4gJmIpewogICAgcmV0dXJuIChhLnNlY29uZCA8IGIuc2Vjb25kKTsKfQogCmlubGluZSBsbCBteChsbCBhLGxsIGIpewoJaWYoYSA+IGIpIHJldHVybiBhOwoJZWxzZSByZXR1cm4gYjsJCn0KCmxsIGdjZChsbCBhLGxsIGIpe2lmKGI9PTApIHJldHVybiBhOyBlbHNlIHJldHVybiBnY2QoYixhJWIpO30KCmxsIHBvd2VyKGxsIHgsbGwgeSxsbCBwKXsKICAgIGxsIHJlcyA9IDE7ICAgCiAgICB4ID0geCAlIHA7ICAgIAogICAgd2hpbGUgKHkgPiAwKXsKICAgICAgICBpZiAoeSAmIDEpCiAgICAgICAgICAgIHJlcyA9IChyZXMqeCkgJSBwOwogCiAgICAgICAgeSA9IHk+PjE7IAogICAgICAgIHggPSAoeCp4KSAlIHA7IAogICAgfQogICAgcmV0dXJuIHJlczsKfQoKaW50IG1haW4oKXsKCW5pdHJvOwoJLy9wcmltZSgxMDAwMDAwMCk7CgkKCSNpZmRlZiBEQkcKCQlmcmVvcGVuKCJpbiIsInIiLHN0ZGluKTsKCSNlbmRpZgoKCWxsIG47CgljaW4gPj4gbjsKCW1hcDxsbCxsbD4gbXltYXA7CgoJZm9yKGxsIGs9MDtrPG47aysrKXsKCQlsbCBtOwkKCQljaW4gPj4gbTsKCQlsbCBjID0gMDsKCQltYXA8bGwsbGw+IG15bWFwMjsKCQlmb3IobGwgaj0wO2o8bTtqKyspewoJCQlsbCBhOwkJCQoJCQljaW4gPj4gYTsKCQkJaWYoayA9PSAwKXsJCgkJCQljPTA7CQkJCgkJCQl3aGlsZShhJTIgPT0gMCl7CgkJCQkJYT1hLzI7CgkJCQkJYysrOwoJCQkJfQoJCQkJaWYobXltYXAuZmluZCgyKSA9PSBteW1hcC5lbmQoKSkKCQkJCQlteW1hcFsyXSA9IGM7CgkJCQllbHNlCgkJCQkJbXltYXBbMl0gKz0gYzsKCgkJCQlmb3IobGwgaT0zO2k8PXNxcnQoYSk7aSs9Mil7CgkJCQkJaWYoYSVpID09IDApewoJCQkJCQljID0gMDsKCQkJCQkJd2hpbGUoYSVpID09IDApewoJCQkJCQkJYSA9IGEvaTsKCQkJCQkJCWMrPTE7CgkJCQkJCX0KCQkJCQkJaWYobXltYXAuZmluZChpKSA9PSBteW1hcC5lbmQoKSkKCQkJCQkJCW15bWFwW2ldID0gYzsKCQkJCQkJZWxzZQoJCQkJCQkJbXltYXBbaV0gKz0gYzsKCQkJCQl9CQoJCQkJfQoJCQkJaWYoYSA+IDIpCgkJCQkJaWYobXltYXAuZmluZChhKSA9PSBteW1hcC5lbmQoKSkKCQkJCQkJbXltYXBbYV0gPSAxOwoJCQkJCWVsc2UKCQkJCQkJbXltYXBbYV0gKz0gMTsJCgkJCX0KCQkJZWxzZXsKCQkJCWlmKGElMiA9PSAwKXsKCQkJCQljPTA7CgkJCQkJd2hpbGUoYSUyID09IDApewoJCQkJCQlhPWEvMjsKCQkJCQkJYys9MTsJCgkJCQkJfQoJCQkJCWlmKG15bWFwMi5maW5kKDIpID09IG15bWFwMi5lbmQoKSkKCQkJCQkJbXltYXAyWzJdID0gYzsKCQkJCQllbHNlCgkJCQkJCW15bWFwWzJdICs9IGM7CgkJCQl9CQkKCQkJCWZvcihpbnQgaj0zO2o8PXNxcnQoYSk7ais9Mil7CgkJCQkJaWYoYSVqID09IDApewoJCQkJCQljPTA7CQkJCQkKCQkJCQkJd2hpbGUoYSVqID09IDApewoJCQkJCQkJYT1hL2o7CgkJCQkJCQljKz0xOwoJCQkJCQl9CgkJCQkJCWlmKG15bWFwMi5maW5kKGopID09IG15bWFwMi5lbmQoKSkKCQkJCQkJCW15bWFwMltqXSA9IGM7CgkJCQkJCWVsc2UKCQkJCQkJCW15bWFwMltqXSArPSBjOwoJCQkJCX0JCgkJCQl9CgkJCQlpZihhID4gMil7CgkJCQkJaWYobXltYXAyLmZpbmQoYSkgPT0gbXltYXAyLmVuZCgpKQoJCQkJCQlteW1hcDJbYV0gPSAxOwoJCQkJCWVsc2UKCQkJCQkJbXltYXAyW2FdICs9IDE7CQkJCQoJCQkJfQoJCQl9CgkJfQoJCWlmKGsgPiAwKXsKCQkJbWFwIDwgbGwsbGw+OjppdGVyYXRvciBpdDsKCQkJaXQgPSBteW1hcC5iZWdpbigpOwkKCQkJd2hpbGUoaXQgIT0gbXltYXAuZW5kKCkpewoJCQkJaWYobXltYXAyLmZpbmQoaXQtPmZpcnN0KSA9PSBteW1hcDIuZW5kKCkpCgkJCQkJbXltYXBbaXQtPmZpcnN0XSA9IDA7CgkJCQllbHNlCQoJCQkJCW15bWFwW2l0LT5maXJzdF0gPSBtaW4obXltYXBbaXQtPmZpcnN0XSxteW1hcDJbaXQtPmZpcnN0XSk7CQoJCQkJaXQrKzsJCgkJCX0JCQoJCX0gCQoJfQoJCQoJbWFwIDwgbGwgLGxsPjo6aXRlcmF0b3IgaXQ7CglpdCA9IG15bWFwLmJlZ2luKCk7CglsbCBhbnMgPSAxOwkKCgl3aGlsZShpdCAhPSBteW1hcC5lbmQoKSl7CgkJYW5zID0gKGFucypwb3dlcihpdC0+Zmlyc3QsaXQtPnNlY29uZCxtb2QpKSVtb2Q7CgkJaXQrKzsJCQoJfQoKCWNvdXQgPDwgYW5zIDw8ICJcbiI7CgkKCXJldHVybiAwOwkKfQ==