# include <stdio.h>
# include<stdlib.h>
# include <string.h>
# include<math.h>
#include<stdlib.h>
#include<stdio.h>
const char* plus(char arr[], char brr[]) {
long long crr[1000000];
long long drr[1000000];
long long err[1000000];
char grr[1000000] = "0";
int sz = strlen(arr);
int sz2 = strlen(brr);
for (int i = 0; i < sz; i++) {
crr[i] = arr[sz - i - 1] - 48;
}
for (int i = 0; i < sz2; i++) {
drr[i] = brr[sz2 - i - 1] - 48;
}
int min = 0;
int max;
if (sz < sz2)
min = sz;
else
min = sz2;
for (int i = 0; i < min; i++) {
err[i] = crr[i] + drr[i];
}
if (min == sz) {
for (int i = min; i < sz2; i++)
err[i] = drr[i];
max = sz2;
}
else {
for (int i = min; i < sz; i++) {
err[i] = crr[i];
max = sz;
}
}
for (int i = 0; i < max - 1; i++) {
if (err[i] > 9) {
err[i + 1] += err[i] / 10;
err[i] = err[i] % 10;
}
}
if (err[max - 1] > 9) {
err[max] = err[max - 1] / 10;
err[max - 1] = err[max - 1] % 10;
for (int i = 0; i <= max; i++)
grr[i] = err[max - i] + 48;
return grr;
}
for (int i = 0; i < max; i++)
grr[i] = err[max - i - 1] + 48;
return grr;
}
int main() {
int n;
scanf("%d", &n);
char arr[1000000] = "1";
char brr[1000000] = "2";
char crr[1000000] = "0";
for (int i = 2; i < n; i++) {
strcpy(crr, plus(arr, brr));
strcpy(arr, brr);
strcpy(brr, crr);
}
printf("%s", brr);
return 0;
}