Periodni
Ο Luka βαριέται στο μάθημα της χημείας και κοιτάζει επίμονα έναν μεγάλο περιοδικό πίνακα χημικών στοιχείων που κρέμεται από έναν τοίχο πάνω από τον μαυροπίνακα.
Για να "σκοτώσει" τον χρόνο του, ο Luka αποφάσισε να φτιάξει το δικό του πίνακα εντελώς
διαφορετικό από αυτόν της τάξης.
Ο πίνακάς του αποτελείται από στήλες, καθεμία με κάποιο ύψος, ευθυγραμμισμένες στο κάτω μέρος (βλ. παράδειγμα παρακάτω).
Αφού σχεδιάσει τον πίνακα πρέπει να τον γεμίσει με στοιχεία.
Πρώτα αποφάσισε να βάλει τα ευγενή αέρια, τα οποία είναι .
Ο Luka πρέπει να τα βάλει στον πίνακα ώστε να μην είναι δύο ευγενή αέρια κοντά το ένα στο άλλο.
Δύο τετράγωνα στον πίνακα είναι κοντά το ένα στο άλλο αν βρίσκονται στην ίδια στήλη ή γραμμή και όλα τα τετράγωνα μεταξύ τους υπάρχουν.
Στο παρακάτω παράδειγμα, τα τετράγωνα '' δεν είναι κοντά, αλλά τα τετράγωνα '' είναι.
Γράψτε ένα πρόγραμμα που, λαμβάνοντας υπόψη τα , και τα ύψη των στηλών, να υπολογίζει τον συνολικό αριθμό των τρόπων με τους οποίους μπορεί ο Luka να τοποθετήσει τα ευγενή αέρια στον πίνακα. Αυτός ο αριθμός μπορεί να είναι μεγάλος, οπότε τυπώστε το ως υπόλοιπο ακέραιας διαίρεσης (modulo) με το .
Είσοδος
Η πρώτη γραμμή περιέχει τους ακέραιους και που χωρίζονται με ένα κενό , τον αριθμό των στηλών στον πίνακα του Luka και τον αριθμό των ευγενών αερίων.
Η επόμενη γραμμή περιέχει θετικούς ακέραιους, χωρισμένους με κενά.
Αυτά είναι τα ύψη των στηλών από τα αριστερά προς τα δεξιά.
Τα ύψη θα είναι το πολύ .
Έξοδος
Τυπώστε τον αριθμό των τρόπων με τους οποίους μπορεί να γεμίσει ο Luka τον πίνακά του με ευγενή αέρια, ως υπόλοιπο ακέραιας διαίρεσης (modulo) με το .
Βαθμολογία
Στα αρχεία ελέγχου αξίας των πόντων, όλοι οι αριθμοί στην είσοδο θα είναι μικρότεροι από .
Στα αρχεία ελέγχου αξίας των πόντων, όλοι οι αριθμοί στην είσοδο θα είναι μικρότεροι από .
Παραδείγματα
input
3 3
2 1 3
output
2
input
4 1
1 2 3 4
output
10
input
5 2
2 3 1 2 4
output
43
input
3 2
999999 999999 999999
output
990979013
Comments