// --------------------------------------------------<TEMPLATE>--------------------------------------------------
// --------------------<optimizations>--------------------
#pragma GCC optimize("O3")
//(UNCOMMENT WHEN HAVING LOTS OF RECURSIONS)\
#pragma comment(linker, "/stack:200000000")
//(UNCOMMENT WHEN NEEDED)\
#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math")\
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
// -------------------</optimizations>--------------------
// ---------------<Headers and namespaces>----------------
#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
#define mod 1000000007
#define int long long
#define lcm(a, b) (a/__gcd(a, b))*b
#define endl '\n'
#define cntbits(x) __builtin_popcountll(x)
#define cntzero(x) __builtin_ctzll(x) //count the number of zeros before the first occurence of '1' form right
#define mk(arr, n, type) type *arr=new type[n]
#define vi vector<int>
#define mp make_pair
#define pi pair<int,int>
#define vc vector<char>
#define pb push_back
#define F first
#define S second
#define w(x) int x; cin >> x; while(x--)
#define in(arr, n) for(int i=0; i<n; i++) cin >> arr[i];
#define deb(x) cout<< #x << " " << x << "\n";
#define deb2(x, y) cout << #x << " = " << x << ", " << #y << " = " << y << "\n";
#define deb3(x, y, z) cout << #x << " = " << x << ", " << #y << " = " << y << ", " << #z << " = " << z << "\n";
#define PI 3.1415926535897932384626
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); //shuffle(arr, arr+n, rng);
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;
/**
* Limits in C++ for reference
* _____________________________________________________________________________________
* |Sr| Macro Name | Description | Value
* |No|____________|_________________________________|__________________________________
* |1.| ULLONG_MAX | Maximum value unsigned long long| 18,446,744,073,709,551,615 (10^20)
* |2.| LLONG_MAX | Maximum value long long | 9,223,372,036,854,775,807 (10^19)
* |3.| LLONG_MIN | Minimum value long long |-9,223,372,036,854,775,808 -1*(10^19)
* |4.| INT_MAX | Maximum value int | 2,147,483,647 (10^10)
* |5.| INT_MIN | Minimum value int |-2,147,483,648 (10^10)
*/
void c_p_c()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
bool isPrime[10005];
void Seive()
{
for (int i = 3; i <= 10005; i += 2)
{
isPrime[i] = true;
}
for (int i = 3; i <= 10005; i += 2)
{
if (isPrime[i])
{
for (int j = i * i; j <= 10005; j += i)
{
isPrime[j] = false;
}
}
}
isPrime[2] = 1;
isPrime[0] = isPrime[1] = 0;
}
int fib(int a, int b, int num_terms)
{
int i = a, j = b;
int c;
for (int z = 3; z <= num_terms; z++)
{
c = i + j;
i = j;
j = c;
}
return c;
}
int32_t main()
{
c_p_c();
Seive();
//clock_t begin, end; double time_spent;
//begin = clock();
int a, b; cin >> a >> b;
vi primes;
for (int i = a; i <= b; i++)
{
if (isPrime[i])
{
primes.pb(i);
}
}
set<int> pp;
for (int i = 0; i < primes.size(); i++)
{
for (int j = 0; j < primes.size(); j++)
{
if (primes[i] != primes[j])
{
string a = "";
a += to_string(primes[i]);
a += to_string(primes[j]);
int z = stoi(a);
if (isPrime[z])
{
pp.insert(z);
}
}
}
}
int c = *pp.begin();
int d = *pp.rbegin();
int num_of_terms = pp.size();
cout << fib(c, d, num_of_terms) << endl;
//end = clock();
//time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
//cout << "Time spent = " << time_spent << endl;
return 0;
}
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08VEVNUExBVEU+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS08b3B0aW1pemF0aW9ucz4tLS0tLS0tLS0tLS0tLS0tLS0tLQojcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzMiKQovLyhVTkNPTU1FTlQgV0hFTiBIQVZJTkcgTE9UUyBPRiBSRUNVUlNJT05TKVwKI3ByYWdtYSBjb21tZW50KGxpbmtlciwgIi9zdGFjazoyMDAwMDAwMDAiKQovLyhVTkNPTU1FTlQgV0hFTiBORUVERUQpXAojcHJhZ21hIEdDQyBvcHRpbWl6ZSgiT2Zhc3QsdW5yb2xsLWxvb3BzLG5vLXN0YWNrLXByb3RlY3RvcixmYXN0LW1hdGgiKVwKI3ByYWdtYSBHQ0MgdGFyZ2V0KCJzc2Usc3NlMixzc2UzLHNzc2UzLHNzZTQscG9wY250LGFibSxtbXgsYXZ4LHR1bmU9bmF0aXZlIikKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLTwvb3B0aW1pemF0aW9ucz4tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy8gLS0tLS0tLS0tLS0tLS0tPEhlYWRlcnMgYW5kIG5hbWVzcGFjZXM+LS0tLS0tLS0tLS0tLS0tLQojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgojaW5jbHVkZSA8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGxjbShhLCBiKSAoYS9fX2djZChhLCBiKSkqYgojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIGNudGJpdHMoeCkgX19idWlsdGluX3BvcGNvdW50bGwoeCkKI2RlZmluZSBjbnR6ZXJvKHgpIF9fYnVpbHRpbl9jdHpsbCh4KSAvL2NvdW50IHRoZSBudW1iZXIgb2YgemVyb3MgYmVmb3JlIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgJzEnIGZvcm0gcmlnaHQKI2RlZmluZSBtayhhcnIsIG4sIHR5cGUpIHR5cGUgKmFycj1uZXcgdHlwZVtuXQojZGVmaW5lIHZpIHZlY3RvcjxpbnQ+CiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHZjIHZlY3RvcjxjaGFyPgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIEYgZmlyc3QKI2RlZmluZSBTIHNlY29uZAojZGVmaW5lIHcoeCkgaW50IHg7IGNpbiA+PiB4OyB3aGlsZSh4LS0pCiNkZWZpbmUgaW4oYXJyLCBuKSBmb3IoaW50IGk9MDsgaTxuOyBpKyspIGNpbiA+PiBhcnJbaV07CiNkZWZpbmUgZGViKHgpIGNvdXQ8PCAjeCA8PCAiICIgPDwgeCA8PCAiXG4iOwojZGVmaW5lIGRlYjIoeCwgeSkgY291dCA8PCAjeCA8PCAiID0gIiA8PCB4IDw8ICIsICIgPDwgI3kgPDwgIiA9ICIgPDwgeSA8PCAiXG4iOwojZGVmaW5lIGRlYjMoeCwgeSwgeikgY291dCA8PCAjeCA8PCAiID0gIiA8PCB4IDw8ICIsICIgPDwgI3kgPDwgIiA9ICIgPDwgeSA8PCAiLCAiIDw8ICN6IDw8ICIgPSAiIDw8IHogPDwgIlxuIjsKI2RlZmluZSBQSSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjYKbXQxOTkzNyAgICAgICAgIHJuZyhjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOyAvL3NodWZmbGUoYXJyLCBhcnIrbiwgcm5nKTsKCnR5cGVkZWYgdHJlZTxpbnQsIG51bGxfdHlwZSwgbGVzczxpbnQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPiBwYmRzOwoKLyoqCiAqIExpbWl0cyBpbiBDKysgZm9yIHJlZmVyZW5jZQogKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAqIHxTcnwgTWFjcm8gTmFtZSB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgfCBWYWx1ZQogKiB8Tm98X19fX19fX19fX19ffF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3xfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAqIHwxLnwgVUxMT05HX01BWCB8IE1heGltdW0gdmFsdWUgdW5zaWduZWQgbG9uZyBsb25nfCAxOCw0NDYsNzQ0LDA3Myw3MDksNTUxLDYxNSAoMTBeMjApCiAqIHwyLnwgTExPTkdfTUFYICB8IE1heGltdW0gdmFsdWUgbG9uZyBsb25nICAgICAgICAgfCA5LDIyMywzNzIsMDM2LDg1NCw3NzUsODA3ICgxMF4xOSkKICogfDMufCBMTE9OR19NSU4gIHwgTWluaW11bSB2YWx1ZSBsb25nIGxvbmcgICAgICAgICB8LTksMjIzLDM3MiwwMzYsODU0LDc3NSw4MDggLTEqKDEwXjE5KQogKiB8NC58IElOVF9NQVggICAgfCBNYXhpbXVtIHZhbHVlIGludCAgICAgICAgICAgICAgIHwgMiwxNDcsNDgzLDY0NyAoMTBeMTApCiAqIHw1LnwgSU5UX01JTiAgICB8IE1pbmltdW0gdmFsdWUgaW50ICAgICAgICAgICAgICAgfC0yLDE0Nyw0ODMsNjQ4ICgxMF4xMCkKKi8KCnZvaWQgY19wX2MoKQp7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2lmbmRlZiBPTkxJTkVfSlVER0UKCWZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwoJZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCn0KCmJvb2wgaXNQcmltZVsxMDAwNV07Cgp2b2lkIFNlaXZlKCkKewoJZm9yIChpbnQgaSA9IDM7IGkgPD0gMTAwMDU7IGkgKz0gMikKCXsKCQlpc1ByaW1lW2ldID0gdHJ1ZTsKCX0KCglmb3IgKGludCBpID0gMzsgaSA8PSAxMDAwNTsgaSArPSAyKQoJewoJCWlmIChpc1ByaW1lW2ldKQoJCXsKCQkJZm9yIChpbnQgaiA9IGkgKiBpOyBqIDw9IDEwMDA1OyBqICs9IGkpCgkJCXsKCQkJCWlzUHJpbWVbal0gPSBmYWxzZTsKCQkJfQoJCX0KCX0KCglpc1ByaW1lWzJdID0gMTsKCWlzUHJpbWVbMF0gPSBpc1ByaW1lWzFdID0gMDsKfQoKaW50IGZpYihpbnQgYSwgaW50IGIsIGludCBudW1fdGVybXMpCnsKCWludCBpID0gYSwgaiA9IGI7CglpbnQgYzsKCWZvciAoaW50IHogPSAzOyB6IDw9IG51bV90ZXJtczsgeisrKQoJewoJCWMgPSBpICsgajsKCQlpID0gajsKCQlqID0gYzsKCX0KCXJldHVybiBjOwp9CgoKaW50MzJfdCBtYWluKCkKewoJY19wX2MoKTsKCVNlaXZlKCk7CgkvL2Nsb2NrX3QgYmVnaW4sIGVuZDsgICAgZG91YmxlIHRpbWVfc3BlbnQ7CgkvL2JlZ2luID0gY2xvY2soKTsKCglpbnQgYSwgYjsgY2luID4+IGEgPj4gYjsKCXZpIHByaW1lczsKCWZvciAoaW50IGkgPSBhOyBpIDw9IGI7IGkrKykKCXsKCQlpZiAoaXNQcmltZVtpXSkKCQl7CgkJCXByaW1lcy5wYihpKTsKCQl9Cgl9CglzZXQ8aW50PiBwcDsKCglmb3IgKGludCBpID0gMDsgaSA8IHByaW1lcy5zaXplKCk7IGkrKykKCXsKCQlmb3IgKGludCBqID0gMDsgaiA8IHByaW1lcy5zaXplKCk7IGorKykKCQl7CgkJCWlmIChwcmltZXNbaV0gIT0gcHJpbWVzW2pdKQoJCQl7CgkJCQlzdHJpbmcgYSA9ICIiOwoJCQkJYSArPSB0b19zdHJpbmcocHJpbWVzW2ldKTsKCQkJCWEgKz0gdG9fc3RyaW5nKHByaW1lc1tqXSk7CgkJCQlpbnQgeiA9IHN0b2koYSk7CgkJCQlpZiAoaXNQcmltZVt6XSkKCQkJCXsKCQkJCQlwcC5pbnNlcnQoeik7CgkJCQl9CgkJCX0KCQl9Cgl9CglpbnQgYyA9ICpwcC5iZWdpbigpOwoJaW50IGQgPSAqcHAucmJlZ2luKCk7CglpbnQgbnVtX29mX3Rlcm1zID0gcHAuc2l6ZSgpOwoJY291dCA8PCBmaWIoYywgZCwgbnVtX29mX3Rlcm1zKSA8PCBlbmRsOwoKCS8vZW5kID0gY2xvY2soKTsKCS8vdGltZV9zcGVudCA9IChkb3VibGUpKGVuZCAtIGJlZ2luKSAvIENMT0NLU19QRVJfU0VDOwoJLy9jb3V0IDw8ICJUaW1lIHNwZW50ID0gIiA8PCB0aW1lX3NwZW50IDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==