$ whoami
park-bit (he/him)
$ cat /etc/profile
Final-Year B.Tech, Artificial Intelligence & Data Science
AI/ML Engineer
Full-Stack Developer
I'm a final-year AI & Data Science student who likes taking a project from idea to deployed product: the model, the API, the UI, and the pipeline that keeps it running.
I care about local-first, privacy-respecting software, tools that run in your browser or on your machine instead of somebody else's server.
Currently exploring:
- Applied ML & LLM tooling (RAG, local inference)
- Privacy-first & encrypted systems (WebRTC, E2EE)
- DevOps & CI/CD automation
- Backend engineering with FastAPI & Node.js
- Data engineering & analytics
- Data structures & algorithms (placement prep)
A privacy-focused, end-to-end encrypted P2P chat app (previously Cipher Mesh) built on WebRTC signaling. Messages go peer-to-peer when both sides are online. When a peer is offline, they're encrypted with the recipient's public key and queued in a zero-knowledge mailbox. DOWNLOAD FROM RELEASES
Peer A ◄──────────── WebRTC (P2P) ────────────► Peer B
│ │
└──► Signaling server (auth · ICE config) ◄─────┘
│
└──► Zero-knowledge mailbox (E2E encrypted, offline peers)
Stack: WebRTC ICE / STUN E2E Encryption Push Notifications
Highlights: IP masking & stealth mode · zero-knowledge offline mailbox · multi-node failover with health probing · cached auth for instant app resume · versioned releases (currently v1.0.24)
A professional, browser-based SQL IDE for fast querying, ER-diagram visualization and schema management. Powered by sql.js (SQLite compiled to WebAssembly), so everything runs in your browser's memory with no backend and no database server.
┌───────────┐ ┌────────────────┐ ┌───────────────┐
│ Query UI │ ──► │ WASM SQL Core │ ──► │ Results Grid │
└───────────┘ └────────────────┘ └───────────────┘
no backend · no server · your data stays in the tab
Stack: React TypeScript Vite sql.js (SQLite WASM) Monaco Editor Vercel
Highlights: Monaco editor with SQL autocomplete · interactive ER diagrams with foreign-key detection · schema explorer · import/export .sqlite files · export results to CSV/JSON
A competitive-programming practice platform for TCS NQT and DSA prep, with original problem statements, sandboxed code execution, and a head-to-head Versus mode.
React + Monaco ──► FastAPI ──► Supabase / Postgres
│
├──► Piston (sandboxed execution)
└──► WebSocket (Versus mode)
Stack: React Vite TypeScript Tailwind CSS FastAPI SQLAlchemy Supabase Piston
Highlights: timed practice · bookmarks & attempt tracking · admin review page · AI-assisted test-case pipeline where ground truth always comes from real execution, never from LLM output
An AI-powered personal finance platform with expense tracking, automated categorization, budget prediction and real-time insights.
React ──► Node.js API ──► MongoDB
│
└──► ML pipeline ──► categorization · forecasts · insights
Stack: React Node.js MongoDB Neural Networks
A local-first document intelligence platform for private RAG: semantic search, Q&A and summarization over your documents, fully offline.
Docs ──► Chunking ──► Embeddings ──► Vector Store
│
Question ──► Retriever ◄──────────────────┘
│
▼
Local LLM (GPU-optimized) ──► Answer
Stack: Python LangChain Vector Embeddings Ollama Multi-LLM
A desktop password manager and credential vault: local encrypted storage, password generation, no cloud.
Master Auth ──► Encrypted Local Vault ──► Credentials / Generator
Stack: Python
An Android TV IPTV player, rebuilt from scratch, with D-pad-first navigation.
Android TV (React + Capacitor)
│
▼
FastAPI ──► M3U proxy ──► TTL cache ──► per-channel fallback
Stack: React Capacitor FastAPI
A fully automated LeetCode tracking bot for Discord servers. Every midnight it pulls each user's accepted submissions from LeetCode's public GraphQL API and posts a report with streaks, leaderboards and roadmap progress. Can be hosted on Render's free tier.
APScheduler (midnight) ──► LeetCode GraphQL ──► Diff new solves
│
Streaks · Leaderboards · Roadmap progress ◄────┘
│
Discord embeds (edited daily)
Stack: Python asyncio APScheduler LeetCode GraphQL Discord API
Highlights: daily / weekly / monthly leaderboards · streak tracking · custom problem roadmaps · slash commands (/status, /run, /leaderboard) · self-healing retries with exponential backoff · atomic JSON persistence
A tiny, resource-frugal Discord bot that executes Python from fenced code blocks and replies with the output. Built to fit Render's free tier (512 MB RAM), with every snippet run in an isolated, resource-limited subprocess.
Discord message ──► Code-block parser ──► AST validator ──► Rate limiter
│
Formatted reply ◄── Isolated subprocess (timeout · RLIMITs) ◄──┘
Stack: Python 3.12 discord.py FastAPI Docker Render pytest
Highlights: stripped-environment subprocess so secrets never reach user code · AST checks + import blocklist · CPU / memory / time / output caps · per-user and global rate limits · designed for trusted/private servers
Not everything ships as a polished repo. Some things are just fun:
Camera
↓
MediaPipe Hand Detection
↓
Gesture Classification
↓
Sound Trigger (via Discord bot)
A private Vencord plugin that turns hand gestures into soundboard triggers.
Currently levelling up in:
- Data structures & algorithms (TCS NQT prep: aptitude, reasoning, verbal, coding)
- Applied ML & LLM tooling
- DevOps & CI/CD
- System design
- Data engineering
╔══════════════════════════════════════════════╗
║ ║
║ B.Tech · AI & Data Science · Final Year ║
║ Building → Shipping → Breaking → Fixing ║
║ ║
║ AI / ML ║
║ Full-Stack ║
║ DevOps ║
║ Data & Analytics ║
║ DSA ║
║ ║
╚══════════════════════════════════════════════╝
If you're having a hard time, don't. ~park-bit
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣤⣤⣶⡴⠶⠾⠛⠛⠛⠛⠛⠛⠋⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠙⠛⠛⠓⠚⠳⠶⠶⣤⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣤⡶⠶⠾⠛⠛⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠛⠷⢶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣴⠶⠟⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠈⠙⠻⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⠾⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠙⠻⣦⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠈⠻⣦⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠈⢿⣆⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢹⣷⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡟⠀⠀⠀⠀⠀⠰⢶⡶⠶⠆⠀⠀⠀⠀⢰⡾⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠶⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠀⠀⠀⠀⠀ ⠀⠀⢻⣇⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣇⠀⠀⠀⠀⠀⠀⢸⡗⠀⠀⠀⠀⠀⠰⣾⡷⠦⠀⣰⠞⢳⣦⠀⣰⡞⢻⣦⠀⢸⡇⠀⠀⠀⠀⣴⠛⠷⠀⣠⡾⠷⣦⠀⠀⠀⠀⣰⡞⠳⠆⠀⣶⠀⢠⣶⠟⣶⠄⢰⡷⠷⣶⠿⣶⠀⣠⡶⢳⡗⠀⣿⠀⠀⠀⠀⠀⠀⠀⠸⣿⡄⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡀⠀⠀⠀⠀⠀⣸⡇⢀⠀⠀⠀⠀⠀⣸⡇⠀⠀⢿⡉⢉⣉⠀⢿⣉⠉⣉⠀⣼⡇⠀⠀⠀⢀⡉⠛⣶⠄⢿⡄⢀⣿⠀⠀⠀⠀⣉⠙⣷⡆⠀⣿⠀⢼⣇⣀⣾⠀⢸⡇⠀⣇⠀⣿⠀⣿⡀⢸⡇⠀⠛⠀⠀⠀⠀⠀⠀⠀⠀ ⣿⡇⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣧⡀⠀⠀⠀⠈⠉⠉⠋⠁⠀⠀⠀⠀⠙⠁⠀⠀⠈⠉⠉⠁⠀⠀⠉⠉⠉⠀⠉⠁⠀⠀⠀⠈⠉⠛⠉⠀⠀⠙⠉⠁⠀⠀⠀⠀⠉⠉⠉⠀⠀⠉⠀⠀⠉⢉⣿⠀⠈⠁⠈⠁⠀⠉⠀⠈⠉⠉⠉⠀⠙ ⠀⠀ ⠀⣿⡇⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠋⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢰⣿⠁⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠳⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢠⣾⠃⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠻⢶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢀⣴⠟⠉⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠷⢶⣤⣄⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⣠⣴⠟⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠛⠛⠳⠶⠶⠶⣶⠶⢶⣶⣤⣤⣤⣤⣤⣤⣀⣀⣀⣀⣀⣀⣀⣄⣀⣀⣀⣀⣀⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⡶⠟⠋⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹⣿⠉⠀⠀⠀⠀⠀⠀⢰⣶⣦⣤⣤⣤⣠⣀⣤⣤⣤⣶⠶⠾⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡿⠀⠀⠀⠀⠀⣠⡶⠟⠁⠀⠀⠀⠈⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡏⠀⠀⠀⢀⣼⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡧⠀⠀⣴⡟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣴⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢺⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡷⣤⠀⠀⠀⠀⠀⠀⠀⠀⣰⠃⠘⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷⢄⠀⠀⠀⠀⠀⠀⠀⠀⢳⡈⠓⢦⣀⠀⠀⠀⠀⠀⣿⠀⠀⠹⡙⣄⠀⠀⠀⠀⠀⠀⠀⣀⡤⠚⢁⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡆⠹⢆⡀⠀⠀⠀⠀⠀⠀⣿⠀⠀⠈⠹⢶⣀⠀⠀⣿⠀⠀⠀⢷⠈⢷⣀⣀⣀⣰⠾⠉⠀⠀⢀⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣰⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣦⡀⠈⠙⠒⠦⣤⣀⣀⠈⠳⣄⠀⠀⠀⠈⠉⠑⠻⠄⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠰⠒⠛⠒⣒⣒⣒⣒⡶⠶⠦⠶⠒⠋⢩⡞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠣⣕⠤⣀⠀⠀⠀⠀⠈⠉⠉⠑⠂⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠴⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡠⠤⠽⠒⠈⠀⠀⠀⣀⣠⠔⠊⠁⠐⠀⠀⢀⡠⠀⢀⡶⠀⠀⠠⡄⠀⢠⡀⠀⠙⠲⢄⡀⠀⠀⠀⠀⠀⠈⠉⠛⠒⠦⢤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠄⠒⠊⠉⠀⠀⠀⠀⠀⠀⠀⠖⠋⠁⠀⠀⠀⢀⡠⠖⠉⠀⢀⡴⠋⠀⠀⠀⢰⠇⠀⠀⢷⠀⠀⠀⠀⠉⠲⣄⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠉⠓⠒⠠⢄⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠙⠭⢍⣉⣉⠉⠁⠀⠀⠀⡠⠀⣀⡠⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠖⠉⠀⠀⣀⡴⠋⠀⠀⠀⠀⠀⢸⡇⠀⠀⠘⡆⠀⠀⠀⠀⠀⠈⠳⡄⡉⠢⣄⠀⠀⠀⠀⠀⠢⣄⣀⣀⣀⣈⠩⠬⠕⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠁⢒⠔⣫⠔⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠋⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⡀⢠⡟⠀⢰⠆⠀⢿⠀⠀⠀⠀⠀⠀⠀⠙⢧⠀⠀⠙⢦⡀⠀⠀⠀⠀⠉⠓⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡴⠗⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡼⠋⠀⠀⢰⠇⠀⠀⠀⢠⠆⠀⠀⢠⠄⠀⠀⢀⡾⠁⢠⠏⡄⠀⠈⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠲⣄⣀⠀⠀⠈⠙⠒⠤⠤⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢀⣠⠴⠚⣁⠠⠔⠊⠀⢀⡄⠀⠀⠀⠀⠀⠀⣰⠏⠀⢀⣾⠀⢰⠃⣠⣿⠂⠂⣰⣿⠀⣤⠀⡾⢁⣴⢯⢠⠇⠀⠀⣿⠀⠀⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⣌⠉⠉⠁⠉⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⡀⠀⠠⠀⣚⠩⠄⠂⠡⠤⣰⠆⠀⣠⠟⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⣰⡇⢠⠇⣼⣿⡇⠀⣴⣿⡿⠀⣸⠞⣠⡟⢁⠇⣼⣱⠀⠀⣿⣧⠀⢸⣧⡀⠀⠀⡄⢷⠀⠀⠀⠀⠀⠀⠀⠈⠲⢄⡈⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣠⠔⠋⣀⠴⡾⠃⢀⡇⣼⠁⠀⠀⠀⠀⡔⠀⣴⣿⠀⡏⣼⡿⢿⡇⢰⣿⢫⢇⣜⣱⠟⠉⠀⡼⢸⣫⣽⠀⢸⣯⠻⡆⢈⣿⣷⣄⠀⠸⣸⡄⠀⣤⠈⣦⡀⣆⢠⡀⠐⠬⣓⣀⠉⠓⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⢀⣀⡤⠖⠥⠒⠚⠉⢁⡞⡡⢠⠟⠀⣿⠀⠀⠀⠀⢠⠟⠀⣿⠀⠀⠀⠀⢠⠇⣰⡿⢿⠰⣿⣿⣥⣼⢀⣿⢃⣾⢛⣼⣿⠂⠂⢰⣱⣿⠋⢽⠀⣾⣿⣤⣽⡀⡷⠼⢿⣆⠀⣧⣇⠀⢸⠀⣿⡽⣌⣧⢿⢦⡀⠀⣙⠢⢉⡉⠁⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡯⢎⡴⣫⢆⣧⣿⢀⠀⡆⠀⣸⢠⡿⣁⣚⢸⣏⣠⣤⣭⣾⣯⣽⠇⣼⣟⢻⠀⣴⣿⠿⢳⣿⡟⣰⣟⣯⣴⣦⣿⣥⣀⣈⣿⣧⠸⣗⠀⢸⢰⢹⣷⣌⠀⠘⣏⠛⠲⠤⣍⣀⣈⣓⡲⠤⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⡼⣫⣴⠿⢋⣿⣿⣿⣿⠸⡄⡇⠀⢱⣾⣷⡿⢿⠛⣿⣿⣿⣿⠿⣿⣿⡺⠉⠙⢏⣰⠟⠃⠘⠉⠉⢽⣿⡿⢿⣿⣿⣿⣟⠛⠻⣷⣿⣇⣯⠀⣆⡟⣼⢷⣹⣧⡀⠻⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣀⣴⠟⠛⠉⠀⢠⣟⣾⡏⠛⢻⡄⣷⡱⢀⢸⠃⠉⣷⣤⣶⣿⣿⣿⣿⣿⣻⣿⣦⡄⠘⢻⠅⠀⠀⠀⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣦⣀⡿⠁⠘⣯⠀⣿⣷⣿⠛⠋⢿⠙⠳⢿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠴⠛⠁⠘⣧⡀⠼⣷⣹⣿⡄⣯⣇⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣀⣀⣀⣀⣀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣾⣏⣰⣿⣭⣿⠂⣠⡿⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠿⢦⣈⠙⠿⢷⣸⠹⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠻⠿⠿⠟⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠉⣹⣿⠿⠟⢋⣤⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣤⠀⠹⣇⠀⠙⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠃⠠⣤⣀⢠⣤⠀⠘⠻⠿⣿⣿⣿⣿⣿⣿⡿⠟⠃⠀⢠⡿⠁⠀⣤⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠓⠒⢻⣇⠀⠀⠀⠀⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⢀⣾⠗⠒⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣆⠀⠀⠀⠀⠀⠦⣤⣄⣀⣀⣀⣀⣠⣀⣀⣀⣀⣤⣤⣤⣤⡤⠶⠓⠀⠀⠀⠀⢀⣾⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣷⣬⣀⠀⠀⠀⠀⠀⠀⠀⠀⠶⠶⠶⠶⠶⠶⠒⠂⠀⠀⠀⠀⠀⠀⢄⣠⣶⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⢿⣿⢹⢳⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡶⣟⣿⡟⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣨⣿⢻⣏⠻⢍⠳⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⡶⠻⠍⣾⢧⣿⣥⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣬⣿⣃⣂⣓⠓⠯⣟⣦⣤⣀⣀⣀⣀⣠⣴⡞⢫⣁⣡⣙⣸⣯⣥⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣽⣝⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀

