**कार्य:** `equals` और `hashCode` को ओवरराइड करना

Kotlin Medium data classes

कार्य «**कार्य:** `equals` और `hashCode` को ओवरराइड करना»

एक `Lesson` डेटा क्लास बनाएं जिसमें फ़ील्ड हों: नाम (String), शिक्षक (String), कक्षा (String), सप्ताह का दिन (Int, 1-7), पीरियड नंबर (Int, 1-8)। एक फ़ंक्शन लागू करें जो पाठों की सूची लेता है और एक नई सूची लौटाता है जहाँ डुप्लिकेट हटा दिए गए हैं (पाठ समान माने जाते हैं यदि उनके सभी फ़ील्ड मेल खाते हैं)। शेष तत्वों का क्रम मूल सूची के अनुसार ही बना रहना चाहिए। यह गारंटी है कि नाम और शिक्षकों में कोई स्पेस नहीं है।

इनपुट प्रारूप

पहली पंक्ति में एक पूर्णांक N (1 ≤ N ≤ 1000) — कक्षाओं की संख्या। फिर N पंक्तियाँ, प्रत्येक इस प्रारूप में: "नाम शिक्षक कक्ष सप्ताह_का_दिन पीरियड_संख्या" (रिक्त स्थान से अलग)।

आउटपुट प्रारूप

K — अद्वितीय पाठों की संख्या आउटपुट करें, फिर K पंक्तियाँ उसी प्रारूप में जैसे इनपुट डेटा में थीं।

main.kt