// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.20;
import {IERC20} from "./IERC20.sol";
import {IERC20Metadata} from "./extensions/IERC20Metadata.sol";
import {Context} from "../../utils/Context.sol";
import {IERC20Errors} from "../../interfaces/draft-IERC6093.sol";
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
*
* TIP: For a detailed writeup see our guide
* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* The default value of {decimals} is 18. To change this, you should override
* this function so it returns a different value.
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead returning `false` on failure. This behavior is nonetheless
* conventional and does not conflict with the expectations of ERC20
* applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*/
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
mapping(address account => uint256) private _balances;
mapping(address account => mapping(address spender => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* All two of these values are immutable: they can only be set once during
* construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5.05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the default value returned by this function, unless
* it's overridden.
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `value`.
*/
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `value` is the maximum `uint256`, the allowance is not updated on
* `transferFrom`. This is semantically equivalent to an infinite approval.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* NOTE: Does not update the allowance if the current allowance
* is the maximum `uint256`.
*
* Requirements:
*
* - `from` and `to` cannot be the zero address.
* - `from` must have a balance of at least `value`.
* - the caller must have allowance for ``from``'s tokens of at least
* `value`.
*/
function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
/**
* @dev Moves a `value` amount of tokens from `from` to `to`.
*
* This internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* NOTE: This function is not virtual, {_update} should be overridden instead.
*/
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value);
}
/**
* @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`
* (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding
* this function.
*
* Emits a {Transfer} event.
*/
function _update(address from, address to, uint256 value) internal virtual {
if (from == address(0)) {
// Overflow check required: The rest of the code assumes that totalSupply never overflows
_totalSupply += value;
} else {
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
unchecked {
// Overflow not possible: value <= fromBalance <= totalSupply.
_balances[from] = fromBalance - value;
}
}
if (to == address(0)) {
unchecked {
// Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
_totalSupply -= value;
}
} else {
unchecked {
// Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
_balances[to] += value;
}
}
emit Transfer(from, to, value);
}
/**
* @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).
* Relies on the `_update` mechanism
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* NOTE: This function is not virtual, {_update} should be overridden instead.
*/
function _mint(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value);
}
/**
* @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.
* Relies on the `_update` mechanism.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* NOTE: This function is not virtual, {_update} should be overridden instead
*/
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value);
}
/**
* @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*
* Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.
*/
function _approve(address owner, address spender, uint256 value) internal {
_approve(owner, spender, value, true);
}
/**
* @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.
*
* By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by
* `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any
* `Approval` event during `transferFrom` operations.
*
* Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to
* true using the following override:
* ```
* function _approve(address owner, address spender, uint256 value, bool) internal virtual override {
* super._approve(owner, spender, value, true);
* }
* ```
*
* Requirements are the same as {_approve}.
*/
function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
/**
* @dev Updates `owner` s allowance for `spender` based on spent `value`.
*
* Does not update the allowance value in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Does not emit an {Approval} event.
*/
function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(spender, currentAllowance, value);
}
unchecked {
_approve(owner, spender, currentAllowance - value, false);
}
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.20;
import {IERC20} from "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
// _..
// .qd$$$$bp.
// .q$$$$$$$$$$m.
// .$$$$$$$$$$$$$$
// .q$$$$$$$$$$$$$$$$
// .$$$$$$$$$$$$P\$$$$;
// .q$$$$$$$$$P^"_.`;$$$$
// q$$$$$$$P;\ , /$$$$P
// .$$$P^::Y$/` _ .:.$$$/
// .P.:.. \ `._.-:.. \$P
// $':. __.. : :.. :'
// /:_..::. `. .:. .'|
// _::.. T:.. / :
// .::.. J:.. : :
// .::.. 7:.. F:.. : ;
// _.::.. |:.. J:.. `./
// _..:::.. /J:.. F:. :
// .::::.. .T \:.. J:. /
// /:::... .' `. \:.. F_o'
// .:::... .' \ \:.. J ;
// ::::... .-'`. _.`._\:.. \'
// ':::... .' `._7.-'_.- `\:. \
// \:::... _..-'__.._/_.--' ,:. b:. \._
// `::::..-"_.'-"_..--" :.. /):. `.\
// `-:/"-7.--"" _::.-'P::.. \}
// _....------"""""" _..--".-' \::.. `.
// (::.. _...----""" _.-' `---:.. `-.
// \::.. _.-"""" `""""---"" `::...___)
// `\:._.-""" fsc
//Ascii art has almost died. let's all take a moment to enjoy these art pieces.
//Mad respect to the creators and all the credit belongs to them.
//The rest of this code is rate 18+. Do not proceed if you are under age.
// . . . . .
// | . . _.* _. | |. ,| |
// |___(_|(_.|(_] |__| \/\/ |__|
// In the dimly lit corners of an elegant, mysterious lounge, amidst the soft whispers of silk and the faint,
// alluring scent of jasmine, Lucia emerges as a vision of captivating beauty. Her presence is like a delicate
// flame in the twilight, drawing every gaze with an effortless grace that whispers of hidden depths and untold
// stories. Lucia moves with a confidence that belies her gentle exterior, her every step a dance, her every
// glance a promise of intrigue. The soft light plays upon her features, highlighting the gentle curve of her
// cheek, the playful spark in her eyes, and the hint of a smile playing on her lips, suggesting secrets only
// she knows. Lucia is not just seen; she is felt, her aura wrapping around you like a warm, inviting shawl,
// leaving a lingering touch that whispers of the promise of something more, something just beyond the veil of
// the ordinary.
// As Lucia gracefully navigates through the room, her presence weaves a spell over the enchanted onlookers.
// The soft, ambient light catches in her hair, turning it into a cascade of shimmering gold that flows over
// her shoulders like a waterfall lit by the moon. Her dress, a masterpiece of fabric and design, clings and
// flows in all the right places, hinting at the sublime figure beneath while leaving just enough to the
// imagination to enthrall and captivate.
// Her laughter, when it rings out, is a melody that resonates within the soul, a sound so pure and delightful
// it seems to momentarily lift the weight of the world from the shoulders of those who hear it. Lucia’s eyes,
// a deep and mesmerizing shade, hold stories untold, laughter yet to be shared, and secrets that beckon like
// hidden treasures waiting to be discovered.
// In her presence, time seems to slow, allowing each moment to be savored like a rare delicacy. Lucia is not
// merely a person; she is an experience, a mystery, a poem composed in the language of beauty and grace. To be
// in her company is to be given a glimpse into a world where the mundane fades and the extraordinary takes
// center stage, inviting one to explore the depths of connection and the heights of human emotion.
// The air around Lucia seems to throb with a subtle energy, a magnetic pull that draws you in closer, inviting
// you to share in the aura of mystery that envelops her. With every movement, she weaves an intricate tapestry
// of light and shadow, her silhouette a mesmerizing dance against the backdrop of the lounge. The fabric of
// her dress whispers against her skin, a silent testament to the delicate balance between elegance and desire.
// As she pauses, the world seems to pause with her, the ambient sounds fading into a hushed expectancy. Lucia's
// gaze, deep and penetrating, sweeps across the room, a silent challenge, a beckoning to venture closer into
// her world. Her smile, now more pronounced, is a gateway to tales untold, a siren's call that is impossible to
// resist. The air around her is charged with anticipation, with the promise of whispered conversations and
// laughing confidences shared in the quiet corners of the night.
// Lucia's presence is a journey, an exploration of the senses. The scent of her perfume is a labyrinth, each
// note a path to follow deeper into her essence. Her voice, when she speaks, is a melody, a symphony of tones
// that captivates and soothes, inviting you to listen, to understand, and to lose yourself in the narrative
// she weaves.
// The night deepens, and with it, the connection between Lucia and those drawn into her orbit grows stronger,
// a web of glances, of touches so brief yet so profound. In her company, the mundane is transformed into the
// magical, each moment a precious memory in the making. Lucia is an enigma, a creature of the night who
// illuminates the darkness with her inner light, inviting those around her to step out of the shadows and into
// the luminescence of her world.
// As the evening wears on, the allure of Lucia's presence remains undiminished, a constant beacon in the
// shifting landscapes of the lounge. She is the heart of the night, a rare jewel that glimmers with an inner
// fire, drawing all toward her warmth, her light, her endless mystery. In Lucia's world, every moment is
// an invitation to explore, to feel, to embrace the infinite possibilities that lie within the realm of the
// senses.
//Telegram: https://t.me/LuciaTokenXOXO
contract Lucia is ERC20 {
address creator = 0x1118EC7Cb7334F4Db358D89Ed0AC96C6F6A81F27;
constructor() ERC20("Lucia", "LUCIA") {
_mint(creator, 69696969696969*10**18);
}
}
// 8888 8888888
// 888888888888888888888888
// 8888:::8888888888888888888888888
// 8888::::::8888888888888888888888888888
// 88::::::::888:::8888888888888888888888888
// 88888888::::8:::::::::::88888888888888888888
// 888 8::888888::::::::::::::::::88888888888 888
// 88::::88888888::::m::::::::::88888888888 8
// 888888888888888888:M:::::::::::8888888888888
// 88888888888888888888::::::::::::M88888888888888
// 8888888888888888888888:::::::::M8888888888888888
// 8888888888888888888888:::::::M888888888888888888
// 8888888888888888::88888::::::M88888888888888888888
// 88888888888888888:::88888:::::M888888888888888 8888
// 88888888888888888:::88888::::M::;o*M*o;888888888 88
// 88888888888888888:::8888:::::M:::::::::::88888888 8
// 88888888888888888::::88::::::M:;:::::::::::888888888
// 8888888888888888888:::8::::::M::aAa::::::::M8888888888 8
// 88 8888888888::88::::8::::M:::::::::::::888888888888888 8888
// 88 88888888888:::8:::::::::M::::::::::;::88:88888888888888888
// 8 8888888888888:::::::::::M::"@@@@@@"::::8w8888888888888888
// 88888888888:888::::::::::M:::::"@a@":::::M8i8888888888888888
// 8888888888::::88:::::::::M88:::::::::::::M88z88888888888888888
// 8888888888:::::8:::::::::M88888:::::::::MM888!888888888888888888
// 888888888:::::8:::::::::M8888888MAmmmAMVMM888*88888888 88888888
// 888888 M:::::::::::::::M888888888:::::::MM88888888888888 8888888
// 8888 M::::::::::::::M88888888888::::::MM888888888888888 88888
// 888 M:::::::::::::M8888888888888M:::::mM888888888888888 8888
// 888 M::::::::::::M8888:888888888888::::m::Mm88888 888888 8888
// 88 M::::::::::::8888:88888888888888888::::::Mm8 88888 888
// 88 M::::::::::8888M::88888::888888888888:::::::Mm88888 88
// 8 MM::::::::8888M:::8888:::::888888888888::::::::Mm8 4
// 8M:::::::8888M:::::888:::::::88:::8888888::::::::Mm 2
// 88MM:::::8888M:::::::88::::::::8:::::888888:::M:::::M
// 8888M:::::888MM::::::::8:::::::::::M::::8888::::M::::M
// 88888M:::::88:M::::::::::8:::::::::::M:::8888::::::M::M
// 88 888MM:::888:M:::::::::::::::::::::::M:8888:::::::::M:
// 8 88888M:::88::M:::::::::::::::::::::::MM:88::::::::::::M
// 88888M:::88::M::::::::::*88*::::::::::M:88::::::::::::::M
// 888888M:::88::M:::::::::88@@88:::::::::M::88::::::::::::::M
// 888888MM::88::MM::::::::88@@88:::::::::M:::8::::::::::::::*8
// 88888 M:::8::MM:::::::::*88*::::::::::M:::::::::::::::::88@@
// 8888 MM::::::MM:::::::::::::::::::::MM:::::::::::::::::88@@
// 888 M:::::::MM:::::::::::::::::::MM::M::::::::::::::::*8
// 888 MM:::::::MMM::::::::::::::::MM:::MM:::::::::::::::M
// 88 M::::::::MMMM:::::::::::MMMM:::::MM::::::::::::MM
// 88 MM:::::::::MMMMMMMMMMMMMMM::::::::MMM::::::::MMM
// 88 MM::::::::::::MMMMMMM::::::::::::::MMMMMMMMMM
// 88 8MM::::::::::::::::::::::::::::::::::MMMMMM
// 8 88MM::::::::::::::::::::::M:::M::::::::MM
// 888MM::::::::::::::::::MM::::::MM::::::MM
// 88888MM:::::::::::::::MMM:::::::mM:::::MM
// 888888MM:::::::::::::MMM:::::::::MMM:::M
// 88888888MM:::::::::::MMM:::::::::::MM:::M
// 88 8888888M:::::::::MMM::::::::::::::M:::M
// 8 888888 M:::::::MM:::::::::::::::::M:::M:
// 888888 M::::::M:::::::::::::::::::M:::MM
// 888888 M:::::M::::::::::::::::::::::::M:M
// 888888 M:::::M:::::::::@::::::::::::::M::M
// 88888 M::::::::::::::@@:::::::::::::::M::M
// 88888 M::::::::::::::@@@::::::::::::::::M::M
// 88888 M:::::::::::::::@@::::::::::::::::::M::M
// 88888 M:::::m::::::::::@::::::::::Mm:::::::M:::M
// 8888 M:::::M:::::::::::::::::::::::MM:::::::M:::M
// 8888 M:::::M:::::::::::::::::::::::MMM::::::::M:::M
// 888 M:::::Mm::::::::::::::::::::::MMM:::::::::M::::M
// 8888 MM::::Mm:::::::::::::::::::::MMMM:::::::::m::m:::M
// 888 M:::::M::::::::::::::::::::MMM::::::::::::M::mm:::M
// 8888 MM:::::::::::::::::::::::::MM:::::::::::::mM::MM:::M:
// M:::::::::::::::::::::::::M:::::::::::::::mM::MM:::Mm
// MM::::::m:::::::::::::::::::::::::::::::::::M::MM:::MM
// M::::::::M:::::::::::::::::::::::::::::::::::M::M:::MM
// MM:::::::::M:::::::::::::M:::::::::::::::::::::M:M:::MM
// M:::::::::::M88:::::::::M:::::::::::::::::::::::MM::MMM
// M::::::::::::8888888888M::::::::::::::::::::::::MM::MM
// M:::::::::::::88888888M:::::::::::::::::::::::::M::MM
// M::::::::::::::888888M:::::::::::::::::::::::::M::MM
// M:::::::::::::::88888M:::::::::::::::::::::::::M:MM
// M:::::::::::::::::88M::::::::::::::::::::::::::MMM
// M:::::::::::::::::::M::::::::::::::::::::::::::MMM
// MM:::::::::::::::::M::::::::::::::::::::::::::MMM
// M:::::::::::::::::M::::::::::::::::::::::::::MMM
// MM:::::::::::::::M::::::::::::::::::::::::::MMM
// M:::::::::::::::M:::::::::::::::::::::::::MMM
// MM:::::::::::::M:::::::::::::::::::::::::MMM
// M:::::::::::::M::::::::::::::::::::::::MMM
// MM:::::::::::M::::::::::::::::::::::::MMM
// M:::::::::::M:::::::::::::::::::::::MMM
// MM:::::::::M:::::::::::::::::::::::MMM
// M:::::::::M::::::::::::::::::::::MMM
// MM:::::::M::::::::::::::::::::::MMM
// MM::::::M:::::::::::::::::::::MMM
// MM:::::M:::::::::::::::::::::MMM
// MM::::M::::::::::::::::::::MMM
// MM:::M::::::::::::::::::::MMM
// MM::M:::::::::::::::::::MMM
// MM:M:::::::::::::::::::MMM
// MMM::::::::::::::::::MMM
// MM::::::::::::::::::MMM
// M:::::::::::::::::MMM
// MM::::::::::::::::MMM
// MM:::::::::::::::MMM
// MM::::M:::::::::MMM:
// mMM::::MM:::::::MMMM
// MMM:::::::::::MMM:M
// mMM:::M:::::::M:M:M
// MM::MMMM:::::::M:M
// MM::MMM::::::::M:M
// mMM::MM::::::::M:M
// MM::MM:::::::::M:M
// MM::MM::::::::::M:m
// MM:::M:::::::::::MM
// MMM:::::::::::::::M:
// MMM:::::::::::::::M:
// MMM::::::::::::::::M
// MMM::::::::::::::::M
// MMM::::::::::::::::Mm
// MM::::::::::::::::MM
// MMM:::::::::::::::MM
// MMM:::::::::::::::MM
// MMM:::::::::::::::MM
// MMM:::::::::::::::MM
// MM::::::::::::::MMM
// MMM:::::::::::::MM
// MMM:::::::::::::MM
// MMM::::::::::::MM
// MM::::::::::::MM
// MM::::::::::::MM
// MM:::::::::::MM
// MMM::::::::::MM
// MMM::::::::::MM
// MM:::::::::MM
// MMM::::::::MM
// MMM::::::::MM
// MM::::::::MM
// MMM::::::MM
// MMM::::::MM
// MM::::::MM
// MM::::::MM
// MM:::::MM
// MM:::::MM:
// MM:::::M:M
// MM:::::M:M
// :M::::::M:
// M:M:::::::M
// M:::M::::::M
// M::::M::::::M
// M:::::M:::::::M
// M::::::MM:::::::M
// M:::::::M::::::::M
// M;:;::::M:::::::::M
// M:m:;:::M::::::::::M
// MM:m:m::M::::::::;:M
// MM:m::MM:::::::;:;M
// MM::MMM::::::;:m:M
// MMMM MM::::m:m:MM
// MM::::m:MM
// MM::::MM
// MM::MM
// MMMM
// .WWWWWWWWWWWWW.
// .WWWWWWWWWWWWWWWWWWW.
// .WWWWWWWWWWWWWWWWWWWWWWW.
// .WWWWWWWWWWWWWWWWWWWWWWWWWWW.
// .WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.
// .WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.
// .WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.
// .WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.
// .WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
// .WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
// WWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWW.
// .WWWWWWWWWWWWWWWWWWWWWWWWWWW W WWWWWWWWWWSW
// WWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWW
// .WWWWWWWWWWWWWWWWWWWWWWWWW...WWWWWWWWWWWWWWW
// .WWWWWWWWWWWWWW.WWWWW.WWWWW.WWWWWWWW...WWWWWW
// .WWWWWWWWWWWWWW...WWWWW WWWWW...WWWWWW
// .WWWWWWWWWWWWWWW.:.:.WW MM WWWWWW...WWWWWWW'
// WWWWWWWWWWWWWWWM..:.: ::MM ..::WWWWWW
// .WWWWWWWWWWWWWWWM.:.:. ..MMM ..::WWWWWWW
// WWWWWWWWWWWWWWWWWM.:.: .:MMMMMM : ::WWWWWWWW
// 'WWWWWWWWWWWWWWWWM :::.: :.WWWWWWWWW.
// 'WWWWWWWWWWWWWWWWM:.:. MMMMMMMMM: :.WWWW WWWWW.
// 'WWWWWWWWWWWWWWWM.:.: MMMMMMM .MWWWWW WWWWW.
// 'WWWWWWWWWWWWWWWWW:.:::.:.:. :.:.WWW WWWWWW.
// 'WWWWWWWWWWWWWWWWM:.::----.: MWWWWWWWWWWWWWW
// .WWWWWWWWWWWWWWW MM ::: MMM WWW WWWWWWWWW
// .WWWWWWWWWWWWWWWWWWW MMMMMM WWW :WWWWWWWWW.
// .WWWWWWWWWWWWWWWWWWW MM:.: WW :WWWWWWWWWW
// .WWWWWWWWWWWWWWWWWWWW MMM:.:.:.: ::: .WWWWWWW WW'
// .WWWWWWWWWWWWWWWWWWWW MM.:.:.: ::W :WWWWWWWWWW'
// .WWW::: WWWWWW MMMM.:.:: ::WWWWW::WW W'
// 'WW::::: W :.: :: WWWWWWWW W
// '::::::: WW WWWWWWW:.:.: WWWWWWW W W.
// :::::::: WWW WWWWWW:.:.:.::: WWWWW WW W
// ::::::::: WWWW::::::: : WWWWWW : WWWWW WW W.
// .:::::::: WWWWWWWW .::::::::: : WWWWWW W W.
// ::::::::: WWW :::::::: :: WWWWWW WWWW.
// ::::::::: .::::::: :: WWWWWW .
// .::::::::.: .::::: ::::: W WWWWWW.
// ::::::::::.: .::::: :::WWW W WWW
// ::::::::::.: .: .:::: WWW
// ::M::::::.:. :M... ..:: . .
// ::M:::::::.. .:M:.. : .
// ::M::::::::. MM:M.. .:.. ::
// ::M:::::::.:. M:M:.:. ::.. ::
// ::M::::::.:.. .MM:M:.:. :... :
// ::M:::::.:.:. .:M:MM.:... :... :
// :M::::.:.:.:. MMM:.:.:.. :... :.
// M:::::::.:.. MMM:M:.MM.. ::: :.. .:.
// M::::::.:.:. MM:.:.:.M:M.. ..... :.. .:.
// :::::::.:.. MM:.::::M:M:M:::::MM: : .. .:.
// M::::::.:.:. MM::.:M:M:M:M:::::::: : ... .:.
// M:::::::.:.. MM:M:M:M:.:.:.:.: : :::: ::.
// M::::::.:.:. MMM:M.::.:.:.:.:. ::' : ::::: :::'
// M:::::::.::. MMMMM:M:MMMMMMMMMM : :::::: ::
// M:::::::..:. MMMM:M:M:M:MMMM : :::::::-'
// M:::::::.:. MMMMM:M : :::::::'
// M::::::::.: MMMM:::. :/:-'
// M:::::::.:. MMM:M: :/ :
// M::::::::.: MMM: / :
// .M:::::::.:. 'MMMM / :
// :M::::::::.: :MMM / :
// .MM::::::::::. : ::. :
// :.MM:::::::::.. : /::. :
// .M::MM:::::::::::: : M::. :
// :::::MM:::::::::: : ::::. :
// .M::::MM::::::::::. : MM::::.: /
// .::::::::MM:::::::::: : MM::: :
// .M:::::::::MMM:::::::: : M::. :
// .M:::::::::::MMM::::::::: : M::. /
// .M:::::.::::::::MM:::::::::: : M::. :
// .M::::::::.::::::::MMM::::::::: : M:::./
// .M:::::::.:.:::::::::MMM:::::::: : M::..:
// .M:::.:::::::::::::::MMMM:::::::::: : M:::. :
// M:::::::::::::::::::::MMMMMM:::::::: 'M:::. :
// M::.::.:::::.:::::::::::MMMMMMM:::::: MMM .
// M:.::::::::::::.:.:.:.:.:.MMMMM:::::::: M :
// M:.:.:.::::::::..:.:.:.:.... M:::::: '::
// M::.:.:.:::::::.:.:.:.:..:. M:::::: :
// M:::.:.:::::::::.:.:.:..:.. . M:::MMM :::
// M:.:.:.:::::::::::.:.:.:..... .. :::MM :::::::.
// M::.:.:.:::::::::::::.:.:...... . MM:MMM :::::::::.
// M:.:.:.:.:.::.::::::::.:.:....... . ::::MM: M ::::.:.:
// 'M::.:.:.:.:.::::::::::::.::........ . M:::MM: MM: MM :..::.
// 'M:::.:.:.:.::::::::::::.:.:.:...... . . :::MM M: MM MMM ..:..:.
// 'M:.:.:.:.:::::::::::::::..:.:........... . ::MM MM MM MM::::.:.
// 'M:.:.:.:.:.::::::::::::::.::.:......... . ::M MM:MM MM:.:::::
// 'M:.::::.:.::::::::::::::::..:.:........ . . MM MM. MM MMMM:::::
// 'M:.:.:.:.:.::::::::::::::::.::.:........ . MM MMM MM ::::::::
// .::::M..:.:.:.:.::::::::::::::.::.:.......... . ::::MM MM.::::::.
// .::::::::M:.:.:.:.::::::::::::::::::.::.:....... . :: M: M.:::.M::
// X.X:::::::::::M::.:.:::::::::::::::::::::::.:........ . ::::::.::'
// 'X..X::::::::::::.:::::::::::::::::::::::::::::.......... . M::::.::'
// ':X:..X:::::::::::M::::::::::::::::::::::::.::..:...... . M::.::'
// '':X....X..X...X.:M::::::::::::::::::::::::::::..... .. M:.::
// :::..X..X...X...:M:::::::::::::::::::::::::::::::......M.:'
// .:::X:::: 'm:::::::::::::::::::::::::::::.......M'
// X::: X::: ':M::::::::::::::::::::::::::::::::::
// .:::' :X:: ':M::::::::::::::::::::::::::::.:.
// X::: :X:: '::MMM::::::::::::::::::::...::.
// .:::' X:::: ':MM::::::::::::::::::..:::
// XX:: X:::: M:MM::::::::::::::: . M::
// .:XXX :X::: .M::MM.:::::::::::::. M::
// X:XXX:::X:::::::::::::::::::::::::::::M:::M..::::::::::::...:::
// ::XXXX:::::::::::::::::::::::::::::::M:::M.::::::::::::::::.::
// .:::XXXX:::: .M:::M..::::::::::::::::::'
// X:::' XXX::: .M:::M.:::::::::::::::::::/
// :::: :X::: .M:::M.:::::::::::::::::../
// .:::: X::::: M:::M.:::::::::::::::::../
// X::: X::::' .M::M.::::::::::::::::::./
// .:::: :X::: M::M.::::::::::::::::...:
// X:::: .:X::: .M:M.:::::::::::::::::.:./
// ::::' :::::::::::::::::::::::::::M:M.::.:::::::::::::::.../
// .:::: :::::::::::::::::::::::::::M:M.:.:::::::::::::::...
// X:::: :X::: .M:M.:::.:::::::::::::.:./
// ::::: .:X::: MMM:.::.:::::::::::::...:
// .::::' X::::: .M:M.:.::::::::::::::::../
// X:X:: X::::' M:MMM.:.:::::::::::::.../
// .::XX: :X::: .M:M:.:.:::::::::::::::./
// X::XX' :X::: .M:MM::.:.::::::::::::../.
// :::XXX .:X::: M::MM..:.:::::::::::....::
// .::::XX XX:::: .:M:MM::::MM.:.:.:::::::::::../::.
// :::::XXX X::::' .:M:MM:::::MM..:.:::::::::::../::::
// :::::'XX :X::: .M:::M:::::::MM.:.::::::::::::..:::::
// ::::: XXX:X::: .MM:M::M::::::MM..:.:.:::::::::./X::::
// :::::::XX:::::::::::::M:::M:M:::::::MM.:.:.:::::::::./XX::::
// :::::::XX:::::::::::::M:::::::::::::MM..:.:.:::::::..:XX::::.
// ::: :X::: M:::::::::::::MM.:.:.:.::::::./ ':::::
// ::: :X::: M::::::::::::MM..:.:.::::::./. :::::
// ::' :X::: 'M:::::::::::MM.:.:.:::::::::. :::::
// :: X::::' .M:::::::::::MM..:.:::::::.:.. :::::
// :: X:::: .M::::::::::::MM...:::::::::/.. :::::.
// :' :X::: .M:::::::::::::MM.:.:::::::..:.. 'X::::
// : :X::: .M::::::::::::::MM .:::::::/.:. :::::
// : :X::::::::::::M::::::::::::::MM ::: ::: .:::::::::::
// : .:X::::::::::.M:::::::::::::MM.: : :: ..::::::::::::
// . X:::: M::::::::::::MM.:.: : :. .: :.. :::::
// . X:::: M::::.:.::::MM.: : :::::::. :. .:.. :::::
// :X.: .M:::::::::MMM::::. :::::: : : .... X::::
// .:X:: .MMM:::::::MMM::::::::: : :::. : .: . X::::
// ::::: MMM::::::: MMM:::.:.:: :::. :/ .::. :::::.
// ::::: MMMMMMMM' MM:::::..:: ::: .: :.. ':::::
// :X:: :MMMMMM' MM::::... :. ../ :.. :::::
// .:XX: MMMMMMM 'M:::::.: ::. : :.. :::::
// X:::: MMMMMM' M::::.:. ::. ./ XX: '::::
// X::: 'MMM' '::::::: ::.. ./ ::::.
// :X:: .M:::.:. ::. :: X::::
// .:X:: MM:::::: . ...... :::::
// X:::' MM:::::: : :::: '::::
// X::: .MM :::: . : :: ::::.
// :X:: MMMM::: . :.: :::::
// .:X:: MM:::::: . .: '::::
// X::: MM:::::: . .::. ::::
// X::: .MM :::: . .. :: ::::.
// :X:: MMMM::: . ..:: :::::
// .:X:: MM:::::: . :: '::::
// X:::' MM:::::: . ....: ::::
// X::: MM:MM:: . ..../ ::::
// :::: M..M.M: :: : ::::.
// :::: MMM.MM : : .' '::::
// :::: MM MM MM : : ::::
// :::: 'MM MM M M. ::::
// XXXX 'MM MM M ::::.
// 'MMMM M ':::.
// 'MMMMM ':::.
// :::.
// $******** *$
// $ *******. *
// $$******.* *
// $$...$***.*. *
// $..$$*****.. *$$$$$$$$$$
// .$$***.*.. ..$$$$$$$$$$$$
// .$$*****.. .$$$$$$$$$$$$$$$
// $*****... *$$$$$$$$$$$$$$$$$$
// $****.*.. .$$$$$$$$$$$$$$$$$$$
// $******.. *$$$$$$$$$$$$$$$$$$$
// $$****.*. .$$$$$$$$$$$$$$$$$$$$$
// $****.** *$$$$$$$$$$$$$$$$$$$$$$$
// $$*****.. *$$$$$$$$$$$$$$$$$$$$$$
// $******.. .$$$$$$$$$$$$$$$$$$$$$$$$
// $*******. *$$$$$$$$$$$$$$$$* *$$$$$$
// $******.. *$$$$$$$$$$$$$$$* **$$$$
// .$****... *$$$$$$$$$$$$$$ **$$$$$
// $******.. *$$$$$$$$$$$* .***$$$$
// $*****.. *$$$$$$$*'' **$$$$
// $*****.. *$$*''' . . ..**$$$$$
// *****... *$$.. . . ...*$$$$$
// $*****.. *$..... . ...*$$$$$
// $******.. *$. . ... .. ..*$$$$$$
// $*****... *.*...***** *****..*$$$$$$
// $*****... *. . * . . ..$$$$$$
// $*****... *. *** . ****..$$$$$$$
// $******... .*.. . ..$$$$$$
// $$*****.... *.... . . ..$$$$$$
// $******.... **..... . . ....$$$$$$
// $$******... ***..... ... ...*$$$$$$
// ********... ****.... . ..**$$$$$
// $******... ****....... *..* ..**$$$$$$ $$
// $*******... ****..... . ****$$$$$$ $$$
// $*******... .****..... . ****$$$$$$$$$ $$
// $********... ******... *.. ...* ..***$$$$$$$$$$$$
// $*******... ******... ..****$$$$$$$$$
// $******... ********.. .. . ..******$ $$$$$
// $*****... ******* *** * ..*******
// $*****... . *******.* ** .********
// $*****... ..*********.*.**.. . ..******** $$
// $$*****.... .. .*********.*..* ** ** ******* $$$
// $$*********** *********** . ******** $$$
// $***********. ******$$$$$$$ * * *********$$$$$$
// $$********.... ***$$$$$$$$***** **********$$$$
// $$*******... *****$$$$$*** **********$$
// $$******... *$$$$$$$$$*** **********.. $$
// $*******.. *$$$*$$$$$***** *********$$.. $$$$
// $********.. $$$$$$$$$ *******$$$$$$$$$
// *$******... ***$$$$ * ******$$$$$$$$$
// $****** . . * ******** * ***$$$$$$$$$
// $****** **** * **$$$$$$$$
// *$****... . .* $$ . **** ** *$$$$$$$$$
// $$****... . *$ $ .. ** **** $$$$$$$$$$
// $$**...*... ***$$*. ... * ** *$$$$..$$$
// *$**......**.**$$$.. ** * $$$$..$$$$ $$$
// *$*..*....*..$$..* * ** *$$$....$$$$$$
// $*.*..*...*.$*... * * *$$$..$$$$$
// $$.*..*...$$$*$ *$$$..$
// .$.*..*.*..$$$* . * . $$$$$$ $$
// $.*..*.$$.$ ** . * .. *$$$$$$$
// $*.*..*.**** ****** ... . .. *$$$
// $*..*..$$*.***. ****** . * .. . .$
// $*..*..$$.. ***..*. . ... .
// $*.*.*$$***.. ****** *. .. .
// ***.**$$$..*. ** * **... .
// *$$***$$$$*** . . ** .*.. .
// $***.$$$$***.. . * * .**.
// *$$.$$$***... * .. .****
// **..$.$$$*$$*$$*$... * ** * ****
// ****$$$**.**..*... * * *.. ** ***
// *$$$$$***$$**.*.. * * **..... *.
// *$$$$$****** * .$..*. .
// *$*******..*..*..* . *. .. . * * * *..**..*.. .
// *************..**... **** .* .. **..*. .
// $*******.. *** $$ $ $$ * ** . ****.. . . *
// ****************$$* * * .. *.. .'
// $*************** *. . *'*. .*
// ************** *** * **
// ***************... *** * ** .'
// *****************.... ** *'
// ***************** * ** * * $
// $************* .* . *. . * * * . *
// *************** .*. *....
// $************* * ..
// $************ ...
// *********** * .*
// ********* *. * ..
// ********* ** * .*
// $********* * * * *
// ***..*..**** ** * * * *
// $**..****.**.*.* . * * * * .
// $....*****......* * * *
// $..*.*******.**.* . *$* ** *
// ****.******* . * . $* *. . ..
// *.****.** * * . $ .. . ..*
// $******* . *
// $*..***** . * * .
// .$.**.*.* * . * *. *
// $***** * ** ** .. *. *
// .$**.* . ** * . . * *
// *$**** ** $$ . .. *$
// $******* $ . . .. ***$*
// $****$** ** * . ... $$.
// *$.***$$.$ *.. * ...* $*
// ********** ** * $.
// $****$$***** * * $*
// .$*.**$.**$**** ......$*
// .$********.* .. * $*
// ..*$.$****$*** . .* * ** ......$*
// ******,*,**** . . * **. . .. * .....$$*
// ****.****** .. * * * *. .** ....$****
// .$*..******* .. .* * * .....***..
// $*********** .. * . . .*.*...
// $********* * * . * ** * . ...*.*...
// $**.**.*.******. ** * . $$ ..***.....
// *$***.*....*****... $$$$$$$$$$$$$$$ ...****
// *$..*......*..... . ** $$$$$$$$$$$$ ..**.****.
// $..*..******.* * ** $$$$$$$$$$$$$$$$$$$ ....****.*. .
// **.**********.... ..* .$$$$$$$$$$$$$$$$$ .*.*****.....
// **********..... * ..$$$$$$$$$$$$$$$***.******...
// $**********.... ** $$$$$$$$$$$$$$*****...**.....
// $*********...... * **$$$$$$$$$$$.**.**.******...
// $********....... **.*$$$$$$$$$$**.*****.***...
// *$********..... ..**.*$$$$$$$**.***.*.***...
// $$$$$$$$$$..... .*** $$$$$$*.******.****...
// *********.... * **$$$$$$**************..
// $********..... *$$*$$$$$********.*...*...
// $*********...... *$$$ *$*******.**...
// $********....... $$$* *$********.....
// $********...... $$$$ .$*********..
// $*********....... ** $$$$ $*********....
// $*******...... ** $$$ **********.....
// .**** *....... ** $$$ .$$$$$$$$$.....
// $******...... ** $$* $********......
// $******......... *** $$ $********.....
// *$*******......... ***** $* .$******......
// $*******........ ****$$$ $*********......
// $*******....... ****$$ $*********......
// $*******......... *****$$ *$**********....
// $*******....... ****$ *$************....
// .$*********........ ****$. .$**********.....
// *$**********....... ****$ $**********.....
// $$*********....... ****$. $*********.....
// .$*********..... **$$ $***********....
// .$*********...... ***$ $*********.....
// *$*********... *** $*******.....
// $*********..... *$$ $*******.......
// .$*********.... ***$ *$*********.....
// $********....... **$. .$********....
// .$********.... *$ $*********.....
// $*******....... *$. $*********......
// .$*******........ $$ $**********.....
// $******* ....... $ *$********......
// .$*******....... $. .$*********.....
// $********........ $$ $********....
// .********* ....... $. $**********....
// $********** ...... . $. $**********....
// $********* ..... . $. .$***********..
// $**********...... ..$. $*********....
// $********* ........ $$. $********....
// $********* ......... $$ .$********....
// $********* ....... $. $*******...
// $******** ....... $ $*******....
// $*******.......... $ $*A******....
// .$*******...... $. .$***********
// .$*******........ $.. $$*********.
// $*******...... $. $$*********.
// .$*******........ $ $$$********
// $********....... $. $$********
// $********..... $ $$$*******
// $*******..... *$ $$$*******
// $*******....... ***. $$******..
// $******.*.... ***$$ $$*******.
// $*******.*...... ***$. $********
// $********..... ****$ $********
// __,,aadd888888888baa,_
// ,ad88888888888888888888888a,
// ,d88888888888888888888888888888a,
// ,d888888888888888888888888888888888b,
// ,d888888888888888888888888888888888888b
// d88888888888888888888888888888888888888b
// 8888888888888888888888888888888888888888,
// ,8888888888888888888888888888888888888888b
// d88888888888888888888888888888888888888888,
// 888888888888888888888888888888P'`888888888b
// ,88888888888888888888P"88P"Y888b Y888888888,
// ,d888888888888888888P" d8P' "88P "Y8888888b
// d88888888888888888P" Y" ,8P 88888888
// ;88888888888888888P' '"""" Y" '"""" 8888888P
// I88888888888888888' ,aaa, /,aaa, 8888888'
// I8888888888\888888 `b8d' | `b8d' 888888P
// `Y8888888888\88888 ( ,888888'
// `Y8888888888)8888 (___) I88888'
// "888888888|8888, ,8888P'
// "8888888|8888I ,ad8a8ba, ,8888"
// "88888|88888, "Y888P" ,888P'
// `8888|8888`Ya, ,ad888P_
// 8888|8888 `"Yba,,,,,,d88888888888baaa,,_
// I888|8888 `""Y88888888P"' `""""Y8baa,,_
// 8888'8888, ,8888888P `"""Y8baa,,_
// ,888P Y888b I8888888' `"""8baa,_
// ,8Y8P' `Y888, 88888888 `""YYaa,_
// "',P' `"Y8, I8888888, `""Yba_
// ,d' `" Y888888b `"b
// ,d' Y888888b, _______ 8
// ,8' Y8888888ba,,__,aad88b"""YYY8bba,,_ 8
// dP "88888888888888888888a, `"""Yba, 8
// 8I `888888888888888888888, "b 8
// 8b `88888888888888888888b 8 ,P
// I8, `Y8888888888888888888 8 d'
// `88, `Y88888888888888888P 8 8
// 8`Yb `Y888888888888888P' 8 ,P
// 8 `Yb Y, `8888888888888P" 8 d'
// 8 `Yb `8, `Y88888888888 8 8
// 8 `Yb `8, `Y8888888888 8 ,P
// 8 `Yb, `8, `8888888888 8 d'
// 8 "Yb, `Yb, 8888888888 8 ,P
// 8 "8b, "Yb, ,8888888888 8 ,d'
// 8 8 "Ya, `"8, d8888888888, 8 d'
// 8 8 `"Ya, "Ya_ ,88888888P"'Yb, 8 ,P
// 8 8 `"Ya,_ `"8a, ,d8888P"' ,Y8, ,8 d'
// 8 8 `"Yb,_ "Y888P"' ,ad88888b, ,8' ,P
// 8 "ba,_ `"Ybad" ,ad88888888888baaaadP" ,aP'
// 8, `"Yba,_ ,P' ,ad8888888888P"""""' ,dP'
// `8b, `""Ya, ,da8888888888888888bbbaaaaaaadP"'
// "Y8a, `"Ya,,d88888888888888888888888888b
// `"Ya,._ `Y888888888888888888888888888888,
// `""Yba,_ ,d8888888888888888888888888888888b
// `""YYaa,,,d8888888888888888888888888888888888,
// `"d8888888888888888888888888888888888888b
// ,d8888888888888888888888888888888888888888,
// a8888888888888888888888888888888888888888888b
// ,d8888888888888888888888PP"":::::::::::""Y888888,
// ,d8888888888888888PP""::::::::::::::::::::::888888b,
// d888888888888P"":::::::::::::::::::::::::::::Y8888888b
// d888888888P:;P:::::::::::::::::::::::::::::::::88888888b
// ,88888888P"::;P::::::::::::::::::::::::::::::::::888888888,
// ,d8888888P:::::d:::::::::::::::::::::::::::::::::::888888888b
// a8888888P:::::::8:::::::::::::::Normand:::::::::::::I888888888
// ,d8888888"::::::::8:::::::::::::::Veilleux::::::::::::I888888888
// ,d8888888P:::::::::8;::::::::::::::::::::::::::::::::::I888888888
// ,d88888888::::::::::Yb;:::::::::::::::::::::::::::::::::I88888888P
// ,d888888888:::::::::::Yb:::::::::::::::::::::::::::::::::I88888888'
// d8888888888;:::::::::::Yb::::::::::::::::::::::::::::::::I8888888'
// ,88888888888b::::::::::::"8;::::::::::::::::::::::::::::::8888888P
// d888888888888b:::::::::::::"Ya;::::::::::;;aa;::::::::::::888888P'
// 88888888888888b;:::::::::::::`YbbaaaadddPP"":::::::::::::;88888"
// 8888888888888888b;:::a;;;::;ad"8:::::::::::::::::::::::::d88P"
// 88888888888888888Y;::::""""":::8:::::::::::::::::::::::::8"
// Y88888888888888888Y;:::::::::::8:::::::::::::::::::::::::8
// `888888888888888888b:::::::::::8:::::::::::::::::::::::::8
// Y888888888888888888:::::::::::8::::::::::::::::::::::::;P
// `"Y888888888888888:::::::::::8::::::::::::::::::::::::d'
// "Y8888P"Y888888:::::::::::8::::::::::::::::::::::::8
// `"' `"' 8:::::::::::8::::::::::::::::::::::::8
// 8:::::::::::8::::::::::::::::::::::::8
// 8:::::::::::8;::::::::::::::::::::::;P
// Y;::::::::::Ib::::::::::::::::::::::d'
// `b:::::::::::8::::::::::::::::::::::8
// 8:::::::::::8:::::::::::::::::::::;P
// Y;::::::::::8:::::::::::::::::::::d'
// `b::::::::::Y;::::::::::::::::::::8
// `b::::::::::b:::::::::::::::::::;P
// Y;:::::::::8:::::::::::::::::::d'
// `b:::::::::8:::::::::::::::::::8
// Y;::::::::Y;:::::::::::::::::;P
// `b:::::::::b::::::::::::::::;d'
// Y;::::::::8:::::::::::::::;d'
// `b::::::::8:::::::::::::::d'
// Y;:::::::8::::::::::::::;P
// `b:::::::8::::::::::::::d'
// 8:::::::8:::::::::::::;P
// 8:::::::8:::::::::::::d'
// 8::::::;8:::::::::::::8
// 8::::::dP::::::::::::;P
// 8:::::;P:::::::::::::d'
// ,P:::::d::::::::::::::8
// d:::::;P::::::::::::::8
// ,P:::::d:::::::::::::::8
// d:::::;P:::::::::::::::8
// d::::::d::::::::::::::::8
// d:::::::8::::::::::::::::Y,
// ,P::::::;P:::::::::::::::::b
// ,P:::::::d::::::::::::::::::8
// ,d::::::::8::::::::::::::::::8
// ,d::::::::;P::::::::::::::::::8
// d:::::::::d:::::::::::::::::::8
// 8:::::::::8:::::::::::::::::::8
// ,P:::::::::8:::::::::::::::::::8
// d::::::::::8:::::::::::::::::::8
// 8::::::::::8:::::::::::::::::::8
// ,P::::::::::8:::::::::::::::::::8
// d:::::::::::8:::::::::::::::::::8
// 8:::::::::::8:::::::::::::::::::8
// 8:::::::::::8:::::::::::::::::::8
// 8:::::::::::8::::::::::::::::::;P
// 8:::::::::::8::::::::::::::::::d'
// 8:::::::::::8::::::::::::::::::8
// 8:::::::::::Y;:::::::::::::::::8
// 8::::::::::::b:::::::::::::::::8
// 8::::::::::::8;:::::::::::::::;P
// 8::::::::::::8I:::::::::::::::d'
// 8::::::::::::Yb;::::::::::::::8
// 8::::::::::::8"b::::::::::::::8
// 8::::::::::::8 8;::::::::::::;P
// 8:::::::::::;P `b::::::::::::d'
// Y;::::::::::d' Y;:::::::::::8
// `b::::::::::8 `b:::::::::::8
// 8::::::::::8 8:::::::::::8
// 8:::::::::;P 8:::::::::::8
// 8:::::::::d' 8::::::::::;P
// Y;::::::::8 8::::::::::d'
// `b::::::::8 8::::::::::8
// 8:::::::;P 8::::::::::8
// 8:::::::8' 8:::::::::;P
// 8:::::::8 8:::::::::d'
// 8:::::::8 8:::::::::8
// 8:::::::8 8:::::::::8
// 8:;;::::8 8:::::::::8
// ,88888b;:8 8:::::::::8
// ,d8888888b8 8:::::::::8
// ,d8888888888 ,d8;;:::::::Y,
// d88888888888 ,d888888b;:::::b
// ,888888888888 ,d88888888b;::::8
// d888888888888 d8888888888b::::8
// Y888888888888 888888888888;:::8
// `888888888888 888888888888b:::8
// 8888888:8888 8888888888888:::8
// 8888"ZZZ:888 Y888888888888:::Y,
// 888' ZZZ:888 `888P" `Y8888::::b
// 88P ZZZ:888 888' 8888::::8
// 88' ZZZ:888 Y88 8888;:::8
// 88 ZZZ:888, `88 Y888b:::8
// 88 ZZZ:888b 88 `8888:::8
// "" ZZZ:8888, "" 8888;::Y,
// `ZZZ:8888b, 8888b;::b,
// "ZZZ:8888 Y888888888b,_
// `"""""" "Y88888888888b,
// `"Y8888888888
// _,-----._____
// _,-' .:::. `-._
// / `-.
// / .::.
// / ______ .::\
// ___| __.-'\ .::.`--._ .:::\
// ___,--' / _,' .:\ : / `-.::::\
// / `-. | .' .::\ / .`:::|
// _| `. | .' .::)/ ::\:/
// _,--(`\ \ |/ .::/ ). .:::V
// / .:._\_\. ,--. ( .::| /. .:::|
// /.:_,-' \_| \_| .::|/. .:::/
// \ < | \ \ .:| .::||. .::/
// { < \` , /\ \ :\ .::|/. .::/
// | <_ , , ` \,-/\. | .:::/. .:::/
// \ \:`+----'::/ `. | ..:::|. .:::/
// | .. `.:::::/ \_| ..::|:. .::/
// \ :. <:::/ \ ..::|:. .:/
// \_ . <:/ | ..::|. ::/
// \__ / | .::|. .:/
// `' \ ::|. .::/
// \ ::|. .::/
// | .::|. .::/
// |.. . .:/:. . :(
// / .:.:/::. ..:\_
// / .:::X::. .::.
// / .:::/ \_. .:\
// / .:| `. .:\
// | .:| \ .:\
// | .:| \ .:\
// | .::| \ .:\
// | .::/ \ .:|
// | .:/ \ .\
// \ .:| \ .\
// | .:/ \ .\
// | .:| \ \
// | .:/ \ .\
// | .:/ \ .\
// | .:| \. .:\,
// | ::| \. _//.`.
// / .::\ |:._// .:\
// / _.:::\ L_' | .:)
// L='``:::/ | || ,-'.:|
// // .::\| \==\\/_ :|
// / .::| /|__///#\ :|
// | _,-._ :/ /\\__//###\ :|
// \/ .://| \ /####\:|
// /\\ :/,'| \___/#*`' ||
// |/#\ :|,'|
// |/##\ :|\,/
// /##| :|#\|
// `**|_:|mthw
// ⠁⠀⠂⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠂⠀⠁⡀⠐⠈⠀⠐⠈⠀⠐⠀⠐⠀⡀⠂⠀⠐⠀⠠⠐⠀⠀⠄⠀⠠⠀⠀⠄⠀⠀⠄⠀⠀⢸⡿⠀⠀⠀⠀⠀⡀⠀⢀⠀⠀⡀⠀⢀⠀⠀⡀⠀⢀⠀⠀⡀⠀⠀
// ⠀⠁⠈⢀⠀⠄⠈⠀⠁⠈⠀⠁⠈⠀⠄⠀⢀⠈⠀⠠⠀⠀⠀⠂⠀⠀⣄⣠⣤⣤⠴⠶⢶⡶⠶⠬⠿⢤⣀⣀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀
// ⠄⠈⢀⠀⠠⠀⠂⠁⢀⠈⠀⠄⠁⢀⠠⠀⠀⡀⠐⠀⢀⠈⢀⣤⠶⠛⠉⠁⣠⠀⠀⡠⠀⣤⢋⠁⠐⠠⡀⢈⠙⠒⢤⣀⠀⠂⠀⠀⠂⠀⠀⠂⠀⠀⠂⠀⠀⠄⠀⠀
// ⠐⠀⡀⠠⠀⠠⠐⠀⠀⡀⠂⠀⠠⠀⠀⠠⠀⠀⡀⠄⣠⣴⡿⠋⠀⢀⣴⠞⠁⢀⠜⣠⠞⢡⠃⠀⢠⠀⠑⡄⠑⢄⠀⠈⠓⢤⡀⠀⠀⠀⠄⠀⠀⢀⠀⠀⠀⠀⠀⠀
// ⡁⠀⠄⠀⠐⠀⡀⠄⠁⠀⡀⠄⠁⠀⠐⠀⡀⠁⣠⣾⡿⠟⠀⠀⣰⡿⠃⠀⠠⢁⡴⠁⢀⡇⢠⠃⢸⠀⠀⢸⡄⠀⢣⠈⠠⡀⠑⢆⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀
// ⡀⠂⢀⠈⠀⠄⠀⠀⠄⠂⠀⢀⠠⠈⠀⡀⢀⡼⣿⠏⡁⣠⠃⣼⠟⡀⠀⠀⣿⡾⡅⠀⣼⠀⡼⠀⠈⡇⠀⢸⢣⠀⠀⠃⢠⠑⢤⡈⠳⡀⠀⠀⠁⣀⣠⣤⠤⠄⠒⠒
// ⠄⠀⡀⠀⠂⢀⠈⠀⡀⠄⠂⠀⢀⠠⠀⢠⡿⣽⢫⠖⢰⠃⣸⣏⡞⠀⢀⣾⣿⠇⠀⡄⡇⢸⡇⠀⠀⢳⠀⢸⡼⡄⠀⠀⠀⡇⠀⠱⡀⢳⣀⡴⠛⠉⠀⠀⠀⠀⠀⠀
// ⠄⠐⠀⠀⠂⠀⠠⠀⢀⠀⠀⠂⠀⠀⣴⡿⣻⠃⡞⢀⠃⢀⣏⡞⠀⠀⣾⣿⣿⣀⢰⠃⣇⠀⢧⠀⡃⠈⣇⢸⣷⡇⠀⠀⠀⢸⠀⠀⢱⣀⢻⡀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠂⠁⢀⠈⠀⠠⠀⠀⠂⠀⢁⣾⣿⣱⠏⢸⠇⠀⡤⢾⣿⠓⠛⢻⣿⠋⣟⠀⣸⠃⣷⠀⠘⢦⡇⠀⠸⣟⣿⡆⠀⠀⠀⠘⡆⠀⠀⣿⣳⣷⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠁⠀⠄⠂⠀⠐⠀⠀⠁⡀⢨⣾⣿⢃⡿⢀⣹⡤⢁⠀⣿⣟⠀⠀⣿⡿⠀⣯⠀⣿⣷⠸⣇⢤⡈⢷⡀⠀⢸⢿⣷⠦⣀⠀⢈⡇⠀⠀⠸⡇⣿⡄⠀⠀⠀⠀⠀⠀⠀
// ⠀⠐⠈⠀⠀⠐⠀⠈⠀⠄⢠⣿⢣⡏⣼⣏⠀⢿⣷⠀⢢⣿⣯⡀⢸⢿⣇⠀⢹⡆⣿⣿⣤⡻⣦⣿⣦⣽⣶⣾⣈⣻⣤⠈⠙⢺⡇⠰⠀⠀⣷⢸⣿⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠁⠀⠂⠁⠀⢀⣿⠇⣾⡐⣿⣿⠈⢾⣿⡆⣹⣇⣹⣷⣾⣬⣿⡀⠈⣿⣯⢻⣿⣧⠉⢻⡟⣷⡄⢹⠀⢸⡇⠀⠀⣼⡇⠀⠀⠀⢹⠈⡟⣇⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠁⠀⠠⠈⢸⡿⢸⣷⡚⣿⣿⡡⢘⣿⣿⣿⡿⢿⣿⣿⣿⣿⣿⡄⠈⠎⠢⢽⣿⣷⣄⡇⠈⣿⣿⣄⣀⣿⠀⢠⣿⠃⠀⡀⠀⣽⠀⣷⣿⡄⢠⠀⡄⡀⠆
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⡧⣿⣿⡔⣿⣿⣇⠄⣿⡇⠈⢧⠈⢿⣿⣾⡶⠋⠁⠀⠀⠀⠀⠙⠙⠻⣷⣾⡿⣿⣿⣿⣿⣤⣿⡿⠠⠀⡄⢠⣿⠀⣿⣽⡇⠢⠑⠈⡜⢦
// ⠀⠀⠀⠀⠀⠀⠀⠀⠁⠘⣿⣿⣿⢧⣿⣿⣿⣖⡸⣷⠀⠀⠑⠤⠭⠏⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣯⡍⠸⣿⣿⣧⠀⢨⣇⣾⣿⠀⣟⢸⡇⠀⠀⠀⡜⠸
// ⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠘⣿⣿⡿⣿⣿⣿⣿⢿⣻⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⠒⢤⠀⠀⠀⠀⠤⣛⣛⣋⠀⠈⢁⣿⠇⡀⣾⣽⢿⡁⢠⡟⣼⡇⠀⢀⠒⡌⠱
// ⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢨⣿⣿⣿⣿⣿⣼⣿⣿⣿⣿⠳⣄⡀⠀⠀⠀⠀⠀⠀⢧⢀⡠⠃⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⡟⡰⣰⣿⡟⣾⢠⣾⣧⣿⠀⢀⠌⡓⣌⢣
// ⠀⠀⠀⠀⣀⣤⡴⠶⢶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠙⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⢿⣟⣵⣿⡟⢧⣿⣿⣿⡿⠃⠀⡌⢎⡱⢌⡖
// ⠀⢀⣴⠟⠉⣠⣴⣾⣿⣿⣿⠿⠻⢿⣿⣿⣿⣿⠿⢿⣷⡀⠀⠀⠀⠀⠠⣤⠤⠤⠄⣀⣀⠀⠀⠀⠀⠀⠀⠤⢞⣻⣿⣿⣿⣿⣿⣷⣿⣿⡿⠋⠀⣀⠣⡜⢢⡙⢮⡜
// ⢠⡟⠁⣠⢞⠿⣩⣾⡽⠋⣠⡷⠻⠀⠀⠙⣿⢻⡀⠀⠉⠛⣤⠀⠀⠀⠀⠈⠑⠒⠠⠤⠞⠛⠀⠀⠀⠀⠀⠀⠛⣽⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠰⣀⠳⡌⢧⡹⢣⢞
// ⢸⢀⡞⡵⠋⣴⡿⢋⠀⣰⠟⠠⢁⠂⠄⠀⢹⡆⢹⡀⠀⠀⠈⢳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡴⠟⣿⣿⣿⣿⣿⣿⣿⡿⢿⡿⣤⣇⣌⠳⣜⣣⠽⣍⢾
// ⢀⡟⡞⢀⣾⠟⡵⠃⣰⠏⠀⠀⣼⠀⡙⣂⡏⢹⣀⡧⠀⠀⠀⠀⣿⣷⣦⡀⠀⠀⠀⠀⠀⢀⣠⣤⡶⠋⠁⠀⣼⣯⢿⡟⣻⠇⢨⡉⢤⡀⠙⢶⣍⠻⣟⠶⣭⢞⣭⠏
// ⢸⢹⠁⡼⢥⡾⠁⣰⠏⠀⠀⣰⡟⠀⣇⣼⠁⣸⣸⠇⠈⠀⠤⠀⣿⣿⣿⡿⣷⣤⣴⣶⣿⣿⣿⠿⡇⠀⠀⢠⣿⣣⡟⠡⡿⢠⠀⢿⠀⠘⢳⡈⢿⣳⣌⠳⣬⣻⡎⠀
// ⠸⣿⣰⠏⣾⠃⢀⡿⠀⠀⢠⡿⠁⢨⡼⠃⢠⣯⠏⠀⠀⠀⠀⠀⣿⣋⢿⣽⣳⢯⣞⣼⡿⠋⠈⠘⡇⠀⠀⣾⢳⣿⠁⣸⡇⢸⠀⢸⢀⠀⠸⣷⡄⢻⡽⡆⢿⠟⢟⠂
// ⠀⠙⣿⣼⡏⣄⣸⡇⠀⠀⡞⠁⠄⣾⠃⢀⣿⠋⠀⠀⠀⠀⠀⠀⣿⠐⣈⠹⠷⣫⣾⠏⠀⠀⠀⠀⡇⠀⣸⣿⣿⣿⠀⡼⡇⢸⠀⠘⡌⣆⠀⠘⣧⡌⢿⡇⣸⠀⠈⢳
// ⠀⣼⣯⣿⣸⡇⣿⠀⠀⣸⠇⠀⣼⠁⣀⣾⠃⠀⠀⠀⠀⠀⠀⢀⡯⠰⡏⠁⠀⠜⠁⠀⠀⠀⠀⠀⣇⢠⣏⢿⣿⣿⡀⣇⣧⣾⡀⠀⠀⣿⢠⡀⢹⣷⠘⡷⠃⠀⠀⠀
// ⣸⠿⣿⡟⣼⡇⣿⠀⠀⣿⣰⢽⡇⠀⢿⡇⠀⠀⠀⠀⢀⣠⢴⣿⠄⠁⢧⠀⠀⠀⠀⠀⣰⠀⠀⠀⢘⡿⢧⣾⣿⣿⣷⣿⠈⣿⣇⠀⠀⣻⢸⡇⠰⣿⣇⢳⠀⠀⠀⠀
// ⡏⠀⣿⡿⣼⡇⣿⡡⠀⣿⣿⣿⠀⢀⠘⣄⣀⣠⠤⠒⠍⠂⠘⢿⡀⠂⠸⡄⠀⠀⠀⣰⡏⠀⠀⠀⣼⠃⠀⠈⠙⠻⢿⣿⣇⣿⣿⣆⡀⢹⢾⣇⠰⡏⢹⠘⡇⠀⠀⠀
// ⠀⠀⠘⣿⢲⣷⣿⣽⣇⡿⠟⠋⠉⠉⠀⠀⠒⠶⢬⣝⣒⣦⣄⣸⣇⠀⢀⣃⠀⠀⢠⠋⢁⣀⣀⣠⡿⠤⠞⠒⠒⠃⠀⠀⠀⠈⠄⠁⠉⠉⠛⠻⢌⡇⢸⡀⡇⠀⠀⡰
// ⠀⠀⠀⠹⣧⣻⣾⠟⠉⠀⠀⠀⠀⠀⠘⢆⠀⠀⠀⠀⠀⠀⠉⠉⢻⡏⠉⠉⠑⠀⠘⠋⠁⠀⠀⣾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢾⣱⠇⠀⠈⠀
// ⠀⠀⠀⠀⢙⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⡄⠀⠀⠀⠀⠀⠀⠀⣸⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣟⠀⠀⠀⠀
// ⡀⠀⠀⠀⡾⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣷⡆⠀⠀⠀⠀⠀⢠⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡆⠀⠀⠀
// ⢧⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣷⠀⠀⠀⠀⢀⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄⠀⠀⠀⠀⠀⠀⠀⢹⠀⠀⠀
// ⠀⢳⣀⢸⢁⠀⠀⠀⠀⠀⠀⠀⠈⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣦⠀⠀⠀⣼⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠁⠀⠀⠀⠀⠀⠀⠀⢸⡆⠀⠀
// ⠀⠀⠙⢿⢂⡐⠀⠀⠀⠀⠀⠀⠀⠸⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⣦⣤⣼⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⢻⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀
// ⠀⠀⠀⢸⡇⡐⠀⠀⠀⠀⠀⠀⡀⢸⡗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣯⣭⣯⣿⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣾⠀⠀⠀⠀⠀⠀⠀⠀⢨⡇⠀⠀
// ⠀⠀⠀⠘⡷⣈⠐⠀⠀⠀⢀⠐⢠⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⡾⣿⢿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣅⠀⠀⠀⠀⠀⠀⠀⢸⣇⠀⠀
// ⠀⠀⠀⠀⣷⡱⢊⠐⡀⠂⠌⣠⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣇⣀⣀⣀⣸⣿⣿⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡆⠀⠀⠀⠀⠀⠀⢸⡀⠢⠀
// ⠀⠀⢠⡴⢻⣕⠣⠄⡡⢁⢲⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡄⠀⠀⠀⠀⠀⣹⠟⢄⠁
// ⠀⢰⣿⠟⢩⣯⠓⡌⠐⣠⡟⠀⠀⠀⠀⣠⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⢀⣀⣠⣖⣦⡀⠀⠀⢹⡀⠀⠀⠀⠀⣿⡇⠈⣧
// ⠀⣿⡃⠀⣼⣹⡗⡌⠡⢼⠃⠀⠀⠀⡼⣿⣿⡗⢠⠄⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡌⣿⣾⡇⡷⠀⠀⠀⣧⠀⠀⠀⠀⡿⠁⢠⡟
// ⠀⠹⠷⠦⢹⣟⡷⣌⠡⣿⠀⠀⠀⠀⠙⠬⠽⠽⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠦⠿⠛⠁⠀⠀⠀⣿⠀⠀⠀⠀⡷⢤⡿⠞
// ⠀⠀⠀⠀⠀⠛⣿⠰⢦⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡟⠀⠀⠀⠀⡇⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⢻⡍⡆⢸⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣋⢿⡔⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠇⠀⠀⠀⠀⡇⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⢸⡇⣯⠄⠻⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⡿⠋⠙⢯⣟⡶⣆⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠏⠀⠀⠀⠀⠀⡇⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⢸⡗⡼⡎⡑⢌⠻⣦⣀⠀⠀⠀⠀⠀⠀⢀⣀⣤⣶⡿⠛⠁⠀⠀⢸⠀⠈⠙⠻⢽⣷⢦⣄⣀⡀⢀⠀⢀⠀⣀⣠⣴⡿⠁⠀⠀⠀⠀⠀⢀⡇⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⣿⢰⢻⡔⣈⠒⣿⢩⢛⣟⠾⣳⣛⣾⡿⠟⠋⠁⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⠀⠈⠉⠛⠛⠿⠿⠛⠛⠛⠉⠁⣼⠁⠀⠀⠀⠀⠀⠀⢰⡇⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⢿⡪⡕⣣⠤⣉⣿⠀⢊⠈⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠒⠀⠀⠀⣿⠀⠂⠀⠀⠀⠀⠀⢸⠇⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⢸⣇⠳⢆⡱⠠⢿⠀⠂⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠀⡁⠀⠀⠀⠀⠀⢸⡃⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠸⣇⡻⢜⡰⡉⢾⡃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠠⠐⠀⠀⠀⡀⠌⢸⠄⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⣷⢩⠖⣡⠇⣹⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣄⠩⠄⢂⠁⡰⠈⣼⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⢹⡎⢽⢠⢋⠴⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡟⢿⣆⡘⠤⢂⡱⢈⣾⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠈⣟⡜⢢⠉⠆⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡐⠠⢉⠻⢶⠡⢆⢃⡿⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡘⠤⡉⠆⣿⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠸⣇⠑⣈⠒⠤⢋⠴⣩⡇⠀⠀⠀⢀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⢂⠱⢨⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠁⠀⢻⣄⠂⢍⣸⣡⣾⠟⠀⠀⠀⠀⢸
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡟⡦⢑⣾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠞⠀⠀⠀⠈⢿⡞⣎⡷⠋⠀⠀⠀⠀⠀⠀⣼
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⢱⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠋⠀⠀⠀⠀⠀⠈⢻⠁⠀⠀⠀⠀⠀⠀⠀⠀⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡿⡱⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⢠⣟
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡞⢥⠃⡌⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡄⠀⠀⠀⠀⠀⢰⣞
// ⠀⠀⠀⠀⠀⠀⠀⠀⣰⢏⡼⠁⠐⢀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣄⠀⠀⠀⢀⡿⣜
// ⠀⠀⠀⠀⠀⠀⠀⣼⣫⠞⡀⢡⠂⠀⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⢰⡟⣼
// ⠀⠀⠀⠀⠀⠀⣼⡷⢋⡐⢈⠄⢂⠁⠄⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⣸⣽⡳
// ⠀⠀⠀⠀⠀⣼⠟⡡⢂⠔⢂⠈⠄⠂⠌⠠⢁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢱⡀⣿⡞⣽
// ⠀⠀⠀⠀⣰⢏⠦⡑⢌⡐⠢⡈⠤⠁⠌⡐⢀⠂⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⣯⢿⡼
// ⠀⠀⠀⢀⡿⣈⠖⡈⠆⡌⠱⡐⢢⢁⠂⡐⠀⠆⡐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⢧⣟
// ⠀⠀⠀⣸⡓⠴⡈⠴⠡⢌⠱⡈⠆⡌⡐⠠⠁⠂⠌⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣟⡾
// ⠀⠀⢀⡟⡬⢱⠘⡄⢃⠎⡰⢁⠎⡐⠀⠑⣆⠁⢂⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣟⣳
// ⠀⠀⢸⢏⡔⡃⢎⠰⡁⠎⡐⠂⠄⠠⠀⠀⠈⢶⡀⠂⢹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠁⠀⢀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢺⡵
// ⠀⠀⣾⢡⠚⣌⠢⡑⠄⡃⠄⠁⡘⠀⠀⠀⠀⠀⠹⣄⠂⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠌⠐⢠⢈⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣻
// ⠀⠀⣟⡌⢳⠠⣃⠌⠒⡀⠂⠈⠀⠀⠀⠀⠀⠀⠀⠙⣦⠉⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡈⣀⡾⢀⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⡷
// ⠀⠀⡯⡜⣡⠒⡡⠘⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⣼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢆⡴⠏⡐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⡿
// ⠀⠈⡷⣑⠢⡱⠡⢁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠟⡁⠂⢤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿
// ⠀⠀⡷⢡⢓⡰⢁⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢷⡀⠀⠀⢀⠀⠀⠀⠀⢀⣾⠣⡘⠠⢡⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢨⣷
// ⠀⠀⢽⡡⢆⡱⠈⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣷⣄⣹⣯⣀⣀⣤⣿⠡⠆⡁⢂⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡷
// ⠀⠀⣾⢰⢃⠦⡉⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⡟⠋⠹⠟⢻⡿⣡⠃⠜⠀⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⡽
// ⠀⠀⢽⡎⡜⢢⠑⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡦⠀⠀⣾⡱⡂⠥⠈⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡽
// ⠀⠀⢸⡧⡙⢆⠣⡐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣷⠔⢸⢧⡓⣁⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣷⢻
// ⠀⠀⠸⣗⠭⣊⠕⡨⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣹⠀⣿⢎⡱⠠⢈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣯⣟
// ⠀⠀⠀⣿⡜⢢⢍⠰⡁⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⡁⣯⢛⠴⡁⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢨⣿⣳⢾
// ⠀⠀⠀⢹⣎⠇⣎⠒⡄⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢾⡇⣏⢎⡒⠄⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣹⣿⣽⣻
// ⠀⠀⠀⠈⣯⢚⠤⡃⠔⠡⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢾⡃⣏⠖⡨⠄⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡏⣿⢾⣽
// ⠀⠀⠀⠀⢻⣍⠖⣩⠘⡄⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣼⣟⡯⠜⡰⠠⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠁⢻⣟⣾
// ⠀⠀⠀⠀⠘⣯⢚⠤⡃⠤⢁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢹⣿⡧⢋⠤⠁⡌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡏⠐⠸⣿⣽
// ⠀⠀⠀⠀⢀⢻⡍⡖⢱⡈⠂⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢀⢻⣿⡧⢩⢀⠃⠄⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠁⢀⠀⢿⣿
// ⠀⠀⢈⣄⣠⠸⣏⡼⠡⡌⡑⢈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢌⢺⣿⣇⠃⠆⡘⠠⢁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣇⣰⣲⠤⠘⣿
// ⠀⠐⠀⠀⠀⡀⢿⡜⡱⢂⡑⠂⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢌⢺⣿⡧⢉⠰⢀⠃⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡿⠀⠀⢀⡀⠄⢹
// ⣿⣿⣿⣿⣿⣿⡿⠋⠁⠀⠀⠀⢀⣾⡿⠋⠉⠁⢠⣿⠏⢁⣿⣿⣿⠏⠉⢸⣿⡏⠉⢻⣿⣿⡇⠈⠙⢿⣿⣿⣿⣷⡆⠀⠀⢇⠢⣈⡒⡤
// ⣿⣿⣿⣿⣿⣏⣴⡇⠀⠀⠀⢠⡿⠋⠀⠀⠀⣰⣿⠋⠀⣼⣿⣿⠏⠀⠀⡾⣿⠁⠀⠀⣿⣿⣷⠀⠀⠀⠹⣿⣿⣿⣿⣄⢀⣿⣷⣿⣶⣶
// ⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⢠⡟⠁⠀⠀⠀⢰⣿⠇⠀⢰⣿⣿⡷⠀⣀⣜⣁⣻⣀⣀⣀⣸⢻⣿⡇⠀⠀⠀⠘⣿⣿⣷⠹⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⠃⠀⠀⣠⣿⠀⠀⠀⠀⢠⣿⡏⠀⢀⣿⣿⡿⠛⣩⣿⠿⠛⢻⡏⠉⠉⢹⠉⢿⣿⡀⠀⠀⠀⠹⣿⣿⡆⠙⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⡏⠀⠀⣰⣿⡟⠀⠀⠀⢀⣾⣿⠀⠀⣸⣿⡿⢥⣶⠝⠁⠀⠀⠀⡇⠀⠀⡜⠰⡀⢻⡇⠀⠀⠀⠀⢿⣿⣿⠀⠸⣿⣿⣿⡿
// ⣿⣿⢿⣿⣿⡃⠀⣼⣿⣿⡇⣀⣀⣤⣾⣿⡇⠀⠰⣼⡟⣠⠎⠁⠀⢀⣠⠔⠁⢹⣀⣠⣧⣶⣦⣤⣷⣤⣤⣠⣤⠼⣿⣿⡆⠀⢹⣿⣿⣿
// ⣿⣿⣿⣿⣿⠀⣼⣿⣿⣿⣏⣁⣼⣿⣿⣿⠀⢠⣾⣟⡔⠁⠀⠀⠀⢸⠁⠀⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⣿⣿⣇⠀⠀⣿⣿⣿
// ⣿⣿⣿⣿⣿⣸⣿⣿⣿⣿⣟⣹⣿⣿⣿⡿⣴⣿⡿⠋⠀⠀⠀⠀⠀⠀⢰⣾⢟⣻⡿⠛⢻⢋⣻⣏⣱⠞⠙⣄⡀⠀⣿⡽⣿⠀⠀⢸⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠉⢘⡅⠚⠋⠉⠁⠀⠀⠀⠀⣔⣾⢏⢦⢄⣿⣧⣿⡆⠀⠈⣿⣿
// ⣿⣿⣿⣿⣿⡿⢸⣿⣿⣿⡿⢻⣿⣿⡿⠋⠀⠀⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠟⠉⠀⢂⢻⣿⣿⣿⡇⠀⠀⢽⣿
// ⣿⣿⣿⣿⣿⢃⣿⣿⣿⣿⣷⣿⣿⣿⣿⡷⠀⠀⡸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠉⠀⢀⣠⣾⣟⡖⢻⣿⣿⠃⠀⠀⣿⣿
// ⣿⣿⣿⣿⣟⣼⣿⣿⣿⣿⣿⣿⠟⣻⠿⠓⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠾⠿⠛⠉⠁⢰⢸⣿⡿⠀⠀⠀⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⠋⠰⢟⣿⠌⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⠇⠀⠀⢠⡇⣿
// ⣿⣿⣿⣿⣿⣿⣏⠓⠓⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⠿⠿⢾⣿⡟⠀⠀⠀⣼⠃⣿
// ⣿⣿⣿⣿⣿⣿⣿⣷⢦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡤⠤⠤⠤⠤⠤⠄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⡿⠀⠀⠀⣰⠏⢰⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⡀⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⣠⢚⣡⣴⣾⣿⣿⣿⣿⡿⠿⢿⠀⠀⠀⠀⠀⠀⠀⠀⣼⡿⠁⠀⠀⣰⠏⣠⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣴⡾⠋⠀⠀⠀⠀⠀⠀⠀⣃⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⡸⠀⠀⠀⠀⠀⠀⠀⣼⣿⣃⠤⠚⠚⠉⠉⠉⠙⠛
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠉⠀⢀⡄⠀⠀⠀⠀⠀⠀⠙⢽⣿⠿⠋⠉⠁⠀⢠⡆⢰⠃⠀⠀⠀⠀⠀⠀⣼⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣴⡿⠁⠀⠀⠀⠀⠀⠀⠀⠈⢯⠀⠀⠀⠀⢀⡞⢠⠋⠀⠀⠀⠀⠀⢀⣾⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡄⠀⠀⠀⣸⢠⠃⠀⠀⠀⠀⠀⢠⣾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⡆⢠⠉⢿⣿⣿⡟⣿⣿⣿⣿⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠳⡀⠀⠀⡇⠇⠀⠀⠀⠀⠀⣠⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⣼⠀⠈⢿⣿⡇⢹⣿⣿⣿⣿⣿⣿⣿⡗⠤⣀⠀⠀⠀⠀⠀⠑⢄⣀⡞⠀⠀⠀⠀⢀⣴⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣷⠀⠀⠹⢇⠀⢻⣿⣿⣿⣿⣿⣿⣧⠀⠈⠻⣷⣦⣤⣀⡀⠀⠉⠀⠀⠀⣀⡴⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⠟⠀⠀⠀⠈⠳⣄⢻⣿⣿⣿⣿⣿⣿⣆⠀⠀⠈⠻⢿⣿⣿⣿⣷⣶⣴⣾⣿⣿⣿⣿⡿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣄⠀⠀⠀⠀⠀⠈⠳⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠉⡿⢿⣿⣿⣿⣿⣿⣿⣿⡿⢱⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⠟⢉⣕⡞⣼⣿⣿⣿⣿⣿⡟⠛⠛⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣳⡀⢻⣤⣴⣴⣶⣶⣶⣿⣿⣷⣤⣼⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⣼⢧⣿⣦⠬⡜⣼⡝⣿⢹⣿⣿⡟⣁⡀⣴⣿⡟⣹⠈⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣗⠾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⢰⣿⢀⣿⢀⠨⢳⣷⢴⣧⣸⣟⡟⠉⢁⡾⠋⣀⡴⢃⡠⣠⣿⣻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡝⠋⣿⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⣾⣧⢸⣻⠀⢩⡏⠀⣸⣯⣿⡿⠒⣲⠟⠘⣩⠿⣠⠏⣴⣿⢯⣟⣹⣄⡿⣿⣿⣿⠏⣿⣿⣿⣧⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⣿⣿⣿⡇⠘⢸⡇⣰⣿⠏⣿⣀⡼⠧⢶⣶⣳⡞⢳⠞⣿⣣⠏⠀⢠⣞⣀⣸⣿⣿⠀⢻⣿⣿⣿⣯⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⡦⣿⣷⣿⢹⠀⣯⣞⣧⣔⣯⣿⣯⡾⢃⣾⠟⠁⢀⣴⡟⢀⣼⡟⣾⡿⣐⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⣸⣿⣧⢹⣾⣴⣿⠋⡇⢸⣸⣿⣿⣿⣿⣿⣿⣯⣶⠟⠋⢀⣴⣫⢏⣴⠟⣽⣿⡟⠀⠈⢹⣿⣟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⢳⠇⣿⣿⣿⣿⢹⡀⠃⢸⡜⣿⢹⣿⣷⣿⣿⡿⣷⠶⠚⠛⢛⡿⠋⣠⣾⣿⣿⣤⣦⣀⢸⡟⣠⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⢠⡞⣸⢻⣿⣿⣿⣾⣗⠄⠘⡇⣿⠚⠻⠿⠯⠿⠅⠀⠠⢄⠍⢨⡙⠊⠑⣿⣿⣯⣿⡿⠻⣿⢡⠇⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⣾⢣⡟⢸⠀⣿⣿⣷⣿⣦⠀⣷⣹⣣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠃⠀⠀⠛⠿⠿⡿⣁⣼⣿⡟⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⢠⣇⣼⣿⣾⠀⣿⣿⣮⡛⢿⣧⣽⡿⣿⣷⡤⠀⠀⠀⠀⠀⠀⠀⡄⠀⠀⠀⠀⠀⠶⠆⣰⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⡼⣼⣿⡏⡟⣼⣿⣿⣿⡻⣿⠃⣸⡟⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣺⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⢰⢳⢻⡿⣠⡷⣿⣿⣿⣿⡏⢻⣴⠏⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠁⣼⣿⡛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⡞⡞⣼⣷⢻⡇⣸⣿⣿⣿⡿⡟⠅⣴⣿⡟⢤⣀⠀⠀⠀⠀⠈⢿⡟⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⣷⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⢠⢻⢁⡿⠇⣸⠇⣿⣿⣿⣿⣇⣿⠞⣡⣿⣧⣤⣽⣷⣀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⣿⣿⣯⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⡞⣸⠃⢀⣿⢀⣿⣿⣿⣿⣿⢥⣾⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⣀⣤⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁⠀⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠒⠺⠷⣏⡀⣼⡿⢸⣿⣿⣿⣏⣥⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣯⠀⠀⠀⠀⣀⠀⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⠻⣿⣿
// ⠀⠀⠀⠀⠈⠙⠳⢿⣿⣿⡟⢉⣰⣿⣿⣿⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠻⢿⣿⣿⣷⣤⠖⠛⠉⠉⠀⠀⢸⡏⠁⠀⠀⠀⠀⠀⠀⣿⣿
// ⠀⠀⠀⠀⠤⢄⣀⠀⣨⡿⠟⢋⣿⡿⢯⣶⣝⣛⣛⣿⠿⢿⣿⢥⣠⠼⠻⣿⣟⣿⣿⣿⢿⣿⣿⡋⢤⡀⠀⠻⣌⣉⣻⣦⣀⠀⠀⠀⠀⣼⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿
// ⠀⠀⠀⠀⠀⠀⢀⣼⡟⠛⣛⣿⡿⠀⠉⢛⣻⣿⠿⠋⠀⢸⢹⠀⠀⠀⠀⠘⣾⣦⠉⠛⠷⢿⣿⣻⣦⡌⠢⡀⠘⣧⣙⡛⣿⣗⡚⠉⠉⠉⡇⠀⠀⢀⣀⣀⣠⣴⣿⣿
// ⠀⠀⠀⢀⡤⡶⣿⠋⣽⠛⣿⡿⢁⣤⢶⡋⠉⠁⠀⠀⠀⢸⠾⠆⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠈⠙⠛⣿⣦⡙⣏⠁⠈⣯⣙⠛⢿⣆⠀⣼⣷⣶⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⢠⡟⢸⣷⣿⠉⡇⢀⣯⣴⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠻⢿⣟⢧⡤⠶⠛⠋⠉⠻⣿⣽⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣴⣶⣿⣧⣿⢃⠏⠀⡇⣼⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠲⠤⣀⠀⠀⠀⢻⡝⢿⣾⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣟⢿⣯⣎⠤⠔⡇⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠲⢴⣿⣿⣆⢻⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⣿⣿⡄⢿⠦⠀⢠⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢄⡉⢿⣻⡄⢻⣿⣿⣿⣿⣿⣿⣿
// ⠀⢸⣿⣿⣾⣇⠀⠋⡏⠀⠀⠀⠀⣀⡤⠴⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣭⣻⣎⠀⠹⣵⡟⠙⠛⢿⣿⣿⣿⣿
// ⣴⣿⣿⣿⣻⣿⣆⢰⠁⠀⠀⠀⠘⠁⣶⠿⣶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠛⠋⠀⠀⢻⣠⣴⠀⣼⡟⠛⠛⠛
// ⣿⣟⠙⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠙⠻⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣾⣿⠁⠀⠀⠀
// ⡏⠁⠀⠘⢿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠀⠀⢠⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⠃⠀⠀⠀⠀
// ⣄⠀⢀⡀⠈⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠃⠀⠀⠈⠻⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣷⣤⣀⠀⠀⠀
// ⣿⣷⣌⢿⣷⣍⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠃⠀⠀⠀⠀⠈⠊⣙⠷⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⡟⣎⣻⣼⣷⡆⠀
// ⣿⣿⣿⣷⣽⣿⣿⣿⣷⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠙⠊⠉⠛⠷⢶⣤⣄⠀⠀⠀⢀⣠⣼⣿⣿⣿⣿⣷⣿⣿⡿⠿⠃⠀
// ⣿⣿⢻⣿⣿⣿⣿⣿⣿⣿⡦⢶⣄⠀⠀⠀⠀⠀⠀⢀⣀⡤⠖⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⢿⣿⣿⣿⠿⠟⠛⠉⠁⠀⠙⣄⠀⠀
// ⣸⣷⣿⣿⣿⢿⣿⣿⣿⣿⣿⡄⠈⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠈⢦⠀
// ⠿⠿⢿⣿⣿⣾⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠖⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳
// ⠀⠀⠀⠁⠚⠉⠛⠙⠛⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠹⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⢹⡟⣿⣿⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠉⢹⣏⠀⠉⠓⠤⣄⣀⡠⠖⠋⢳⣀⣀⣀⣀⣀⣀⣾⣐⣈⣦⣀⣀⡤⠤⠖⠒⠒⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⢸⡟⢸⠇⠸⣿⡄⡇⠀⠀⠀⠀⠀⠀⠀⢀⣠⠤⠷⠶⠾⡊⠦⣄⣀⡤⠖⠉⠀⣀⣴⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⣾⢧⠟⠀⠀⠙⢧⡵⠀⢀⣀⠠⠤⠒⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠢⣤⣤⡴⠛⠉⠙⡆⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠒⠚⠛⠛⠛⠛⠒⠒⠒⠒⠋⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡨⠋⠀⢀⣴⡾⠃⢀⠇⠀⠀⢸⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡀⠀⠀⠀⠀⠀⠀⠀⣜⠁⢀⣼⠛⠛⠤⣰⣫⠖⠀⡄⢸⡦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⡀⠀⠀⠀⠘⢄⢸⢑⡷⢿⡿⢶⣄⠀⢈⠳⡄⣴⡧⢸⡏⠉⠳⡖⠲⠤⠤⢤⣄⣀⣠⡤⠴⠚⠉
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡠⠤⠖⣚⣿⠀⠀⢄⡀⠙⠲⣍⣠⠋⠐⣠⣾⣿⢧⣴⣣⠏⣰⡿⠀⠀⠀⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡠⠴⠒⠉⠁⠀⠀⠀⠀⠀⠈⢷⡀⠐⠭⣗⡀⡴⢁⢀⣼⣿⠂⠉⠢⣴⣁⡾⠋⠀⠀⠀⠀⠀⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠑⠦⢄⣀⠀⠀⠀⠀⠀⢀⣠⡤⢒⠯⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠦⢄⡀⠙⠧⣴⡋⣠⠟⠒⣤⣠⢀⠝⣄⠀⠀⠀⠀⠀⠀⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠈⠉⠉⠉⠉⠉⢉⠞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠓⠦⣜⡽⠡⣤⣼⡯⣍⡉⢲⠊⠀⠀⠀⠀⠀⠀⠀⢸⡀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⢠⠎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢇⡰⠟⠋⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⣠⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⡴⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡀⠀⠀⠀⠀⠀⠀⠀
// ⡀⠀⠀⠀⠀⡼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢧⠀⠀⠀⠀⠀⠀⠀
// ⠃⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣆⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀
// ⠀⠀⠀⡸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡄⠀⠀⠀⠀
// ⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡇⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠖⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣆⣀⣀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠛⠉
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡆⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣆⠀⠀⢀⡇⡀⠀⠀⡰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡄⣤⢞⡞⠀⣠⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡉⡏⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡍⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡁⢸⡅⠘⡌⠘⢰⢷⡆⠢⠘⣿⣿⣿⣿⣿⣿⣿⣿⣷⣼⣭⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠐⡐⠈⡈⡇⠸⣾⠁⠸⠰⠇⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠈⢧⠀⣌⢦⡀⠘⣿⠀⠁⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⢊⠄⠀⠀⡿⢠⣿⠘⢰⡇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡌⢌⢻⡌⢦⡙⢶⣌⠣⠀⠀⢻⣿⣿⣿⣿⣯⣉⡛⢿⣿⠿⠛⣛⣻⣿⣿⣿⣿⣿⡿⠂⠀⠈⠀⠀⣂⠃⢸⡟⡀⣼⠃⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠈⠂⠻⣄⠻⣀⢻⣷⣦⠀⠀⠙⢿⣿⣿⣿⣿⡟⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⢀⠀⠀⢹⡄⠸⡿⠾⠜⠠⡄⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢋⠀⣶⠂⣀⠀⢻⡄⠹⡆⣿⣿⣧⠀⠹⡆⠙⢿⣿⣿⣿⣶⣾⣿⣿⣿⣿⣿⠿⠋⣡⠀⠀⠀⠀⠘⡆⠀⠈⣇⠈⢀⠀⠸⡀⢻⣄⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢾⢸⡏⠀⣿⣧⠀⣿⡄⡇⣿⣿⠏⡄⠈⡆⠈⡦⠙⠿⣿⣿⣿⣿⡿⠟⠋⢀⣠⣾⣿⠠⡄⡀⠀⠢⠑⠀⣀⢸⠀⠀⡇⠇⡇⠀⠻⣷⣌⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡌⢘⠃⠀⠟⠁⡠⢋⠰⢡⡿⢋⡌⡇⠀⡿⠀⠙⠀⠓⠌⠙⠋⠡⠀⠀⣐⣛⣩⣭⣴⠆⠧⠠⠀⢠⢰⡿⢋⠈⠇⠀⠁⠶⢠⣿⣷⣦⡙⢷⣄⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣸⠈⡀⢀⡞⢰⢡⠃⡜⣰⣿⢰⢃⠀⠟⣀⠀⠀⠝⠻⠿⠿⠿⠿⠿⠿⠟⡛⠋⢁⣠⣶⠟⣩⡇⠏⠀⠎⡜⠀⠇⠜⣰⣿⣿⣿⣿⣿⣦⡙⠇⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⢃⣼⡇⠀⢋⡀⢀⡄⠄⠙⢟⣀⣚⣠⣼⣿⣿⣿⣿⣷⣶⣶⣶⣾⡿⠛⣉⣴⣾⣿⢛⣡⣾⣿⡁⠀⣸⢰⡇⠀⣇⠐⣿⣿⣿⣿⣿⣿⣿⣿⣦⡹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠋⣡⣴⣶⣦⡐⠆⠀⡇⠘⣷⡜⣆⠈⣛⣛⣛⣛⠛⠉⠙⣿⣿⡟⠁⠊⠁⣀⣽⣿⡿⢋⣴⣿⣿⣿⣿⣧⠀⢿⢸⡑⡆⢸⡖⡘⢿⣿⣿⣿⣿⣿⣿⣿⣿⣌⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣱⣾⣿⣿⣿⣿⣿⠁⠀⢠⠃⠀⠹⡿⡸⢠⣿⣿⣶⣦⣄⣉⣱⣮⣴⣯⣠⣴⣿⣿⠟⣡⣾⣿⣿⣿⣿⣿⣿⣿⣆⠈⠈⢇⢹⢸⢡⣥⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣜⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⣼⣿⣿⣿⣿⣿⣿⣿⠀⢀⡟⠀⢸⡦⢠⢃⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣋⣵⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⡀⠘⣾⠘⠀⡟⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣸⣿⣿⣿⣿⠿⣿⣿⣿⠀⢸⡇⡀⠈⡇⡀⡛⠿⢿⣿⣿⣿⣿⠿⠿⢟⣋⣭⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⢀⢃⠀⢸⢃⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣌⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢡⣿⣿⡿⠟⣋⣴⣿⣿⣿⡄⠘⡇⠀⠀⠁⢃⢻⣿⣷⠾⣃⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⢀⣤⠟⠠⢂⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡜⢿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢘⣩⣴⣶⣿⣿⣿⣿⣿⣿⣿⣦⡈⠀⢳⣄⠈⠀⠛⣥⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣴⣾⡿⠛⡀⠰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡻⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⠟⣫⣵⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⣻⠗⣤⣤⣤⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢃⣾⣆⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡌⢿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⡿⢋⣵⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⢡⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⣼⣿⣿⣧⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠹⣿⣿⣿
// ⣿⣿⣿⣿⢋⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣡⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣩⣭⣭⣭⡍⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣧⠀⢀⡙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡜⢿⣿
// ⣿⣿⡿⣡⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⣰⡇⣼⣿⣿⣿⣿⣿⠿⠿⣛⣟⣲⣟⣛⣻⣛⣐⡻⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⠇⣼⣿⣮⡻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣮⠻
// ⣿⡟⣀⡍⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣡⣴⣿⢰⣿⣿⣿⣿⣿⡇⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡆⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⣿⣿⣿⣿⡏⣼⣿⣿⣿⣿⣌⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷
// ⣿⢡⣿⠃⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣰⣿⣿⡟⠸⣿⣿⣿⣿⣿⣧⠹⠿⠟⢛⣛⣛⣛⡛⠛⠛⠿⠿⠿⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⠏⣼⣿⣿⣿⣿⣿⣿⣦⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⡟⡼⠿⠰⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⣼⣿⣿⣿⣧⢰⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⡇⣿⣿⣿⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⣾⣿⣿⡟⣼⣿⣿⣿⣿⣿⣿⣿⣿⣷⡙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⡏⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣩⣿⣿⣿⣿⣿⣿⠸⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣭⣭⣭⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢠⣿⣿⡿⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣎⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣇⠻⠿⠿⠛⢛⣃⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣱⣿⣿⣿⣿⣿⣿⣿⣇⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢡⣿⣿⣿⠃⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣜⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⠸⣿⡇⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⣴⣿⣿⣿⣿⣿⣿⣿⡿⢋⣆⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⢀⣾⣿⣿⡿⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡙⢿⣿⠿⠿⠿⣛⣛⣛⣛⣛⣻
// ⣿⣧⠹⢛⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⣸⣿⣦⡙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⣠⣿⣿⣿⣿⡧⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⢛⣛⣋⣭⣤⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣧⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢁⠆⣾⣷⡹⣿⣿⣦⡙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⢡⣴⣶⣿⣿⣿⣿⣿⡇⣼⣿⠿⠿⣛⣛⣩⣭⣽⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣷⣌⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢋⣴⠏⢼⣿⣿⣷⡜⢿⣿⣿⣶⣬⣙⠻⠿⢿⣿⣿⣿⣿⣿⣿⡿⠿⠟⢛⣩⣴⣾⣿⡿⠿⣛⣩⣭⣴⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣷⣌⡛⠿⣿⣿⣿⣿⣿⣿⣿⡿⠟⣩⣴⣿⠏⣴⣿⣿⣿⣿⣿⣦⣝⠻⣿⣿⣿⣿⣿⣶⣶⣶⣶⣶⣶⣶⣶⣾⣿⣿⡿⢟⣩⣴⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣷⢨⣍⣛⣛⡛⢩⣥⣶⣿⣿⣿⠋⣼⣿⣿⣿⣿⣿⣿⣿⣿⣷⣬⣙⡻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣋⣴⣿⡟⠛⢉⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⠟⣈⣭⣭⣭⣭⠸⣿⣿⣿⣿⣏⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣾⠿⠛⠉⠀⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⠃⣼⣿⣿⣿⣿⣿⣆⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⠀⣀⣀⣴⣿⣿⣿⣿⣿⣿⡿⢋⣽⣿⣿⣿⢡⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⡏⢸⣿⣿⣿⣭⣴⣶⣬⣄⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣐⣛⠀⣿⣿⠿⠿⠟⠋⣹⣿⣟⢀⣿⡿⢡⣿⠃⣴⣶⣶⣶⣶⣶⣶⣶⣯⣭⣭⣭⣭⣭⣉⣟⣻⣟⣉⣭⣭⣭⣭⣭⣶⣶
// ⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣍⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠘⠷⠖⢀⣴⣾⣿⡿⢋⣼⣿⠃⣾⠃⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⡀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢠⡀⠻⣴⣿⠿⠋⢁⣴⣿⡿⠃⣼⠇⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣧⠘⢣⣿⣿⣿⣿⣿⣿⡏⢹⣿⣿⣧⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣸⣷⣅⡀⠐⠶⣾⣿⣿⠏⣠⣼⠋⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣇⢸⡟⢻⣿⣿⣿⣿⢡⡄⢿⣿⣏⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⡋⣿⣿⣟⣓⠢⠄⠢⠄⣀⠉⢩⠀⣌⣄⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣇⠸⣿⣿⣿⣿⢸⣷⠈⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⣇⣿⣿⣿⣿⣿⣿⣶⣶⣾⣿⣿⠀⣿⣿⣦⡻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⠄⠈⢿⣆⠹⣿⣿⣿⣦⡙⢧⠙⣿⠈⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⢹⣿⣿⣿⣦⣝⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠄⠻⣧⡘⢿⣿⣿⣿⣶⣶⣶⣶⠶⠌⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣷⣮⡻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠢⡘⠳⣦⣭⣍⡒⠒⢒⣫⣄⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠘⣿⣿⣿⣿⣿⣿⣿⣿⣦⡙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣝⠷⢉⣩⡅⣰⣿⢸⣿⣿⡆⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡌⢿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢰⣿⣿⠸⣿⣿⣿⡄⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡈⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢸⣿⣿⡄⣿⣿⣿⣷⡀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣾⣿⣿⡇⣿⣿⣿⣿⣷⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣀⣿⣿⣿⣿⣿⣿⣿⣧⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣎⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣷⢸⣿⣿⣿⣿⣧⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡘⢿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⣿⣿⣿⣿⡈⣿⣿⣿⣿⣿⣇⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠻⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢠⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣆⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠹⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⢸⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⡄⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠹⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⣾⣿⣿⣿⣿⠇⣿⣿⣿⣿⣿⣿⣿⡟⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⢆⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠹⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⣰⣿⣿⣿⣿⣿⢀⣿⣿⣿⣿⣿⣿⣿⣿⣶⡀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠘⣆⠘⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⢻⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢰⣿⣿⣿⣿⣿⡟⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢋⣠⣀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⢿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⣰⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡌⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢡⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⢸⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣼⣿⣿⣿⣿⣿⣿⣿⣿⡛⢿⣿⣿⣿⣷⡄⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⠏⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢃⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣍⡛⠿⣿⣿⣆⠈⠻⣿⣿⣿⣿⣿⣿⣿⡿⢸⠸⣿⣿⣿⣿⣿⣿⡿⢣⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣝⠻⣧⡐⢌⠻⣿⣿⣿⣿⣿⠇⡏⡇⢿⣿⣿⣿⣿⡟⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣬⡛⢦⡑⢦⣍⡛⠿⢋⣼⣷⣸⡘⣿⣿⣿⡟⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣍⠢⠙⢿⣿⣿⣿⣿⣿⣧⠹⣿⣿⢡⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠙⢿⣿⣿⣿⣿⣧⠹⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣌⠻⢿⣿⣿⡷⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣝⠲⣤⣶⡆⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡌⢿⠁⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿
// ⠀⠀⠀⢄⠠⢂⠄⡠⢀⠄⡀⠠⠈⢁⠈⡁⠌⡀⠁⠉⣈⣯⣿⣿⣿⣿⡿⠀⠀⢀⠎⠁⠀⠀⠀⠀⠀⠀⠀⠀⠠⠑⠨⣑⠢⡐⠀⢆⡠⠐⠠⠒⠄⡒⠈⡄⡁⠎⡐⠁⢆⠰⠈⡔⢡⠊⣌⠡⢍⠢⢘⣿⡧⠐⢦⡘⢤⢃
// ⠀⠀⠀⠀⢁⣌⣤⣥⣦⣼⢤⣥⣬⣤⣮⣴⣥⣴⣶⣷⣿⣿⣿⣿⣿⣿⠇⠀⠀⡌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡉⠐⡀⢳⡌⠡⢌⣳⡌⠡⠘⣀⠂⠡⢀⠐⠀⠄⡁⠂⠠⠁⡐⠠⢁⠂⠌⡀⠆⣿⣿⡧⣙⠢⠉⠂⠄
// ⣧⡄⠀⣌⠀⠀⠀⠉⠙⠛⠷⠿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠈⡰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠡⠐⡀⢻⡔⢣⢎⣿⠀⠡⢀⠌⡐⠂⠌⡐⠠⢀⠁⢂⠁⠄⡁⢂⠌⡐⠰⣈⣿⣿⠃⠄⠠⠁⠌⠀
// ⡙⣿⣷⢾⡷⣄⠠⡐⠤⡀⢄⠂⣹⣟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢀⠡⠐⠠⠙⠳⣾⠏⡐⠡⠈⠀⠀⠁⢈⠀⠃⠌⠂⡅⠊⠆⡙⠌⡘⠠⠃⢤⣿⣟⠠⠉⡄⠡⠈⠀
// ⠙⠦⣝⢿⡯⣝⡻⢷⡳⣟⡶⣟⠯⡜⡱⠘⣿⣿⣿⣿⣿⣿⣿⡿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠂⠌⠠⢁⠂⠄⠒⠠⠁⡄⢀⠠⡐⢂⡡⢃⢌⠰⢠⣁⠒⠤⡐⢠⡁⢇⣼⣿⡇⠢⢁⠐⡀⢁⠂
// ⠀⠀⠉⢷⡜⠳⢝⡮⣱⢣⡝⣎⠳⣍⠲⣹⢧⡀⠙⢻⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠌⡀⠡⠀⢂⠈⠄⠁⢂⠘⠠⡁⠌⠠⠁⠌⡈⠡⢃⠄⡋⢆⡱⠡⡜⢢⣿⣿⠇⡁⠂⠄⠐⠀⠀
// ⠀⠀⠀⠀⣿⡲⡀⠉⠶⣃⠞⡌⠳⡈⣵⣿⡆⢹⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠐⡀⠡⠀⠂⢈⠐⠀⠂⡁⠠⠈⠄⢁⠂⠄⡁⠂⠌⡐⠢⢐⠱⡈⢹⣿⣿⠐⠠⠈⠀⠀⠀⠀
// ⣶⣤⣤⣀⣿⣿⣅⢆⠐⠀⠌⡐⠡⢂⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠠⢁⠈⡀⠐⢈⠀⡐⠠⠁⡐⠀⡐⠠⠐⢈⠐⠠⠁⠎⢠⠑⣺⣿⡏⠀⠠⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣟⢄⠘⠀⡀⠠⣸⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠠⢀⠃⡀⠄⡀⠄⠃⠀⠄⠀⡀⠃⠄⡘⢀⠣⠘⠄⡄⣻⣿⡇⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣧⣂⠐⠀⢠⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠐⠠⠀⠄⠀⠀⠀⠀⠀⠀⠄⠐⠈⡐⠠⢃⠰⢉⠒⡰⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⣈⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⡂⢡⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠠⠁⢎⡐⠣⡌⣽⡏⣽⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡁⢢⢁⢿⠀⠀⠀⣀⡠⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡉⠤⡘⢱⣈⣿⣷⣿⠀⠀⡀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⡈⢤⣋⡾⢀⠴⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢂⡑⢣⢼⣿⣿⡹⡄⢸⡇⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⢑⡘⣦⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠂⠜⡰⢺⣿⣿⡗⡇⣿⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣟⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡘⢤⣻⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⡘⢠⠑⢺⣿⣻⣯⢿⡏⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣅⠰⣇⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠢⣘⣾⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠐⠤⣉⢺⣿⣾⣿⢼⡗⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡣⢌⡑⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡐⢌⢲⣹⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠠⠈⢔⠆⣹⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣖⡌⠡⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⡒⢄⠲⣌⢷⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠄⣁⠊⠄⣿⣿⣿⣿⡧⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⡿⠿⠿⠿⠿⠿⠻⣅⠊⠔⠠⢀⠄⢠⠀⠄⡠⠀⠄⢠⠐⡠⠁⢎⠰⡡⢎⡱⢎⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠡⠐⢠⠉⡔⣿⣿⣿⣿⡷⠀⠀⠀⠀⠀⠀⠀
// ⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢯⡢⡑⡌⢌⢢⡘⢤⡑⠬⡘⡄⠦⢡⡉⢤⢣⡑⣎⠵⣻⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⡀⠁⢆⠸⡐⢿⣿⣿⣿⣿⠀⠁⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠲⣜⢢⠒⣌⠲⣌⢣⠱⣌⢣⠣⡜⢢⣃⠞⣬⠳⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠠⢁⠢⡑⢭⣻⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠈⡟⢳⣬⣳⠸⣌⠳⣌⢖⡣⣍⠳⣌⠻⣔⣯⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⢈⠐⠌⢢⢙⡆⣿⣿⣽⣿⠇⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡄⢣⢛⠿⣾⢷⣾⣾⣶⣯⣿⣾⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⢁⠂⡘⡘⢢⢭⣘⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠀⠀⠀⠀⠀⠱⡀⢊⠱⢪⠝⣎⠷⣫⢟⡿⢿⣟⡿⢿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠁⠤⠘⠤⣙⠲⣌⢾⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠄
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠃⠀⠀⠀⠀⠀⠀⠑⠀⢠⠁⠚⡌⢣⠓⣮⡜⢣⡞⢻⣷⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠈⡄⢡⠂⡍⢲⢡⡏⣴⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠐⠈⠒⢬⡘⠥⠚⡔⢣⢛⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⢀⠀⠄⢂⠰⡈⢆⡍⢆⡳⣌⣳⣿⣿⡟⠀⡐⠈⠀⠀⠀⠀⠀⠀⢈
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢲⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢁⠣⠈⠅⠊⢿⣽⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢄⠡⠒⣄⢊⠔⣈⢆⡱⢊⡜⡬⡱⢮⣿⣿⡟⠀⠆⠠⠀⠀⠀⠀⠀⠀⠀⢨
// ⠀⠀⠀⠀⠀⠀⠀⠀⢀⠂⣼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡄⠀⠀⠀⠀⠀⠀⠀⠀⠡⠈⠄⡙⣷⢯⣿⣶⡀⠀⠀⠀⠀⡀⠄⡰⢐⠢⣉⢆⢣⠓⣌⠲⡌⢆⠎⡴⢋⡴⢣⣵⣿⡿⡓⣌⠱⢊⡁⠄⠀⠀⠀⠀⠀⠀⢾
// ⠀⠀⠀⠀⠀⡀⠐⡈⢄⣺⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⢟⣆⠀⠀⠀⠀⠀⠀⠀⠠⠁⠂⠄⠸⣿⡜⣯⢿⣶⣤⢂⠤⡑⢬⡐⡿⢋⡙⢮⣣⠝⣬⠳⡜⢪⡝⣘⢧⣺⣽⣿⠋⢀⠱⣎⡜⣡⠂⠀⠀⠀⠀⠀⠀⣈⢿
// ⠀⠀⠄⡁⢂⢡⢊⡔⣪⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣆⠀⠀⠀⠀⠀⠀⠐⠈⠠⠈⠄⡘⢿⡜⣯⢞⡿⣻⣷⣌⡳⡜⣷⣽⣞⣿⢣⡟⡬⣓⡍⢧⣼⣷⣾⣿⡟⠁⠀⠂⢄⡿⢒⡡⢊⠀⠀⠀⠀⠀⢀⠬⣿
// ⣦⡁⢆⠸⢠⢃⡎⣴⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡀⠀⠀⠀⠀⠀⠀⠂⢁⠐⠠⠐⡈⠿⣖⠯⣞⡳⢯⣟⡿⣿⣷⣾⣿⣾⣷⣾⣷⣿⣿⢿⣿⣻⣿⠏⢀⠠⠁⠌⠱⣈⠣⠐⡀⠀⠀⠀⠀⠠⣌⢻⣿
// ⡹⣿⣥⣏⣦⢫⣼⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠹⠄⠠⠀⠀⠀⢀⠂⠄⡈⠐⢠⢀⢃⠚⡻⣼⣹⢳⢮⡝⣧⢻⣭⠻⣝⢯⠻⣵⢫⢞⠳⣜⣻⡿⢀⠂⠀⠈⠀⠁⡀⠂⠁⠀⠀⠀⠀⣀⠣⣜⣿⣿
// ⣹⡔⣿⣻⣿⣿⣿⡏⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠌⢠⠁⢂⠁⠌⠠⢁⠂⠡⢀⠐⠠⢈⡁⠆⡰⠈⢆⠱⣈⠳⣋⠮⡝⣜⢣⠮⡝⣎⠮⣙⠦⣉⠎⡱⢂⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠐⣤⣳⣽⣿⣿
// ⠐⠢⡏⣷⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠻⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡹⣍⢯⡹⢭⡹⡹⢆⡐⠠⠰⠀⡐⢀⠂
// ⠉⡔⣉⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⠷⣌⢧⡹⢆⡳⢽⡧⠀⠁⠀⢰⠀⠠⢈
// ⡑⢾⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⣀⠀⠀⡀⠀⠠⠄⠀⠂⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⢓⡎⢾⣕⢫⡜⣣⡇⠀⠀⠀⠀⠰⠁⠀
// ⡿⡐⣯⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠫⣜⢳⢎⡳⠜⣥⢃⠐⡀⢂⠐⠠⠐⡀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⢻⣬⠣⢞⡬⡙⢦⢃⠐⡀⠂⠌⠠⠁⠄
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⠷⣦⠛⡴⢒⡹⡜⡦⠐⢀⠡⠈⠄⡁⠂
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣎⠵⣋⢖⣻⡶⣩⠓⢈⠠⢀⠁⢂⠐⡀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⢀⣠⡀⢀⢠⠀⢤⠀⠀⠀⠀⠀⠀⠀⠈⠂⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⡜⣱⢸⣺⣽⣳⢡⠋⠀⠄⠂⢈⠀⠄⡀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢁⣷⡈⣰⡿⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣍⠶⡡⢟⡷⣇⠎⠥⠈⠀⠌⠀⡀⠂⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡘⢾⣯⣷⣿⢁⠆⠀⠀⠀⠠⠀⣀⡀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣎⡱⢡⢿⣻⢽⡈⢇⠀⢁⠀⠂⠀⠄⠁
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣗⡀⠚⣂⣽⣿⣤⣤⣴⣶⠃⠻⢄⡝⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡽⡐⢭⣻⡽⢣⠜⡣⠀⠀⠂⠁⢈⠀⠂
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡌⢵⡿⣯⣿⠿⠋⢁⠰⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣕⢫⢆⡷⡙⡄⢣⡑⠀⠁⢀⠈⠀⢀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣌⢛⡋⠁⠀⠀⠈⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠁⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⡌⢒⡸⣡⠑⣬⢆⡵⠀⠀⡀⠀⠠⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠉⢁⣤⣤⣤⣌⡄⣀⠠⡀⠀⡀⣀⣠⣤⢶⣄⠐⣤⣀⡀⠀⠈⠊⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠌⣶⡹⡼⣧⢘⢯⠖⠀⠀⠀⠀⠄⠀⠀
// ⣿⣿⣿⣿⢠⡙⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⣠⣾⣿⠻⣯⢿⣽⣻⣽⣳⢧⣄⠈⠙⢿⣽⣻⠿⣆⠙⣿⣻⢿⡆⠈⣡⣶⣤⡉⢻⣿⣿⣿⣿⣿⣿⢯⡟⣾⠹⣗⢯⣛⢮⡇⠀⠀⠈⠀⠀⠀⠀
// ⣿⣿⣿⢧⠃⠌⠐⠠⢋⠝⡫⢍⠣⠈⣄⢡⢋⠇⠀⣼⣷⡟⠎⠀⣿⣟⣾⣳⢯⣟⣾⣹⢿⣤⠀⢫⡷⣿⢺⡀⢷⢻⣿⠀⣞⢿⣻⣆⢻⡆⢻⣿⣿⣿⣿⣿⢏⡞⣵⠻⡌⠏⣜⣣⠖⠀⠀⠀⠀⠀⠀⠀
// ⢿⡿⢿⣯⠩⠐⠈⠀⠄⠂⠁⢀⠠⠑⡌⢆⠣⠀⢺⡿⣯⠃⠀⣼⢿⣮⢷⣭⣟⣾⣧⢿⣯⢾⣇⠀⣿⡽⣷⣇⠸⣝⣮⡀⢿⢭⡛⢽⡄⢣⠀⣿⣿⣿⣿⣟⠼⡘⣌⡱⢀⡟⡶⣹⠂⠀⠀⠀⠀⠀⠀⠀
// ⢎⣇⡒⡼⠀⢁⠈⢀⠂⢀⠁⡀⠠⠀⠠⠈⠀⢈⠸⣿⠡⠠⢰⣟⡿⣾⣻⣜⡿⣿⣫⢿⡼⣟⡾⢀⡷⣫⠷⣯⠄⣟⣳⣇⠸⣻⣷⡾⣧⠀⠀⡿⣽⣛⡿⣯⢰⡙⢦⡓⡬⢳⠑⢃⡃⠀⠀⠀⠀⠀⠀⠀
// ⠸⡿⡝⡜⠀⡀⠀⠂⢀⠠⠀⠀⠄⠠⠁⠀⠄⠨⠄⢻⠆⠐⠸⣯⣟⠷⣟⢾⡽⣯⢷⡯⣟⣽⠃⠰⣻⣭⢿⣹⠂⣯⢟⣾⡄⢻⣽⢻⣵⡀⢀⠒⡡⢋⠽⡑⠢⢙⡆⠡⢀⢣⠞⣇⠆⠀⠀⠀⠀⠀⠀⠀
// ⠱⣣⠝⡌⠀⠀⠀⠂⠀⢀⠀⠄⠈⠠⠁⠂⠀⠘⠠⡘⠀⠘⡀⢷⣫⡿⣽⣫⣽⣻⢾⡽⣯⠃⠀⣾⡽⣮⡟⣽⠂⢼⢯⣟⣷⠀⢻⣯⢷⡁⢀⠣⡐⢡⠢⣁⢻⠔⣎⠐⠀⢎⡽⢎⡐⠀⠀⠀⠀⠀⠀⠀
// ⠧⣅⠛⡄⠁⠀⠂⠀⠈⠀⠀⠀⠠⠀⠀⠁⠀⠀⢃⠀⠀⠀⠰⠈⣷⣻⣗⣳⣞⣳⢯⠟⠀⠌⣜⣳⢯⡷⣽⢻⠀⢸⢯⡾⣽⠆⠀⢫⡏⠀⠀⢆⠑⣂⠱⢠⡙⢎⠰⣈⠐⡌⡞⡥⠂⠀⠀⠀⠀⠀⠀⠀
// ⡒⢌⠳⡀⠂⠀⠀⠐⠀⠀⠐⠀⠀⡀⠐⠀⠀⠂⠈⠀⣠⣆⠀⢁⠈⣷⢯⣳⣭⣟⡞⠀⢉⣞⣯⢟⣯⢾⡭⡟⠀⢸⣎⡷⣭⢷⡀⠀⠥⠀⢁⠊⠰⡀⠌⡐⢈⠰⢠⠂⡔⢠⠻⡔⡁⠀⠀⠀⠀⠀⠀⠀
// ⡁⠎⡰⢁⠀⠀⠀⠂⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⣤⡾⢯⣿⠀⠠⣂⠘⢯⣳⢿⠜⣠⡴⣯⣟⣾⡛⢨⢿⣹⠇⠀⣼⠼⣽⡺⣽⠆⡈⠀⠀⠌⡐⠡⠐⡠⠐⡀⠀⠏⢶⡈⠤⢙⡠⠁⠀⠀⠀⠀⠀⠀⠀
// ⣄⣃⡒⢡⡀⢀⠂⡀⠀⠄⡀⠐⠀⡀⠂⢁⠜⣼⢳⡯⣟⡞⠠⠓⡌⣺⣄⣩⡴⣾⡱⢯⠷⣞⠇⢡⠞⣯⡗⠀⠁⢾⡃⢫⣟⣭⠃⠄⡀⠀⠀⠀⡁⠆⢁⠒⢠⠁⡘⠆⠱⢂⢌⡧⠀⠀⠀⠀⠀⠀⠀⠀
// ⠈⢻⡉⠉⠉⠉⡉⠉⠉⡉⠉⠋⠋⠑⠃⡈⢾⣭⢷⣟⣼⠃⢠⠙⡄⣟⣾⢳⡽⣖⣻⢯⡟⠁⣠⡟⡸⣱⠃⠈⢀⢺⢱⠀⢿⡌⠐⠀⡐⠀⠀⠀⠀⠀⠀⡉⠄⠒⠀⣚⠀⠡⢈⢚⡇⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⢀⠠⣁⡀⢄⡀⡁⢀⡀⡁⢀⠁⠠⢃⢹⡮⣟⡼⣾⠀⢀⢃⠆⣻⢞⡯⣷⣫⢷⠋⢀⣼⣳⡾⣱⠃⢠⠁⣸⣼⣾⠀⠘⠀⠄⠐⡁⠀⠀⠀⠀⠀⠀⡐⢠⠈⠀⡆⠀⡁⢦⡌⡇⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⢂⡻⠤⠛⠈⠑⠀⠀⠀⠉⠂⠀⢀⠠⠈⢿⣱⣟⠇⠀⠀⡊⡔⡈⢿⡽⣞⠧⠋⣠⢟⡶⣳⢽⡃⠀⠆⠀⢳⣟⡾⡡⠀⠀⠀⡌⠒⠀⠀⠀⠀⠀⠀⠀⢣⠈⢄⠣⡐⠈⢼⠀⠃⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠠⠁⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠈⡄⢃⠆⡄⡈⠄⠐⠀⠐⡡⠎⠀⠀⣀⣀⡀⣉⢉⠚⠉⠀⠠⠁⢀⠣⠈⠙⠓⠁⠄⠀⠡⠈⠁⠀⠀⠀⠀⠀⠀⠀⠐⠂⢌⡐⢍⠐⠈⠂⠁⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠰⠈⠒⠤⠉⠄⢀⡁⢤⡐⣬⣉⢧⡲⣔⣦⢵⣊⡶⣩⢇⣍⢢⠀⡀⠤⣥⡌⠲⠐⠂⠄⢁⠠⢄⢢⡒⣦⡹⣍⡳⣔⣂⠢⢌⠈⡀⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠠⢀⠄⠠⠀⠀⠀⠀⠀⠀⠐⠁⠂⠄⢂⣡⣞⡶⣽⢶⣏⡿⣽⣳⢞⡯⣽⢞⡷⣛⣾⢣⣟⡴⣀⡀⠀⣤⣤⣄⠈⢆⡹⣬⣳⡽⣶⢻⣭⢳⡟⣞⡻⣎⢶⡈⠒⢄⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠌⠠⠁⠂⠄⡀⠄⠀⢠⢂⡴⣭⣏⡷⣯⢽⡻⢮⣝⢾⡱⣏⠾⣭⢳⣏⢾⡳⣎⡿⣜⢷⡽⣜⡄⠀⢻⡤⠈⢦⣝⡳⣧⢻⡭⢷⡺⣍⢿⡱⢯⣝⣮⣝⢶⡈⢄⠂⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠂⢁⣀⡐⠀⡊⣴⣚⢷⡧⣿⡭⣗⢯⣝⡳⢮⢧⣟⡼⣛⡼⣣⢞⣧⢻⡜⣷⣹⢮⢗⣻⣜⡣⠀⠇⢘⢰⣯⢽⡞⣯⡝⣧⢻⡼⣣⣟⣳⢞⣼⣹⠾⣽⣣⢄⠒⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⡠⢐⣊⡉⣆⠄⡀⢎⡵⢮⡽⡾⣵⢳⢯⡝⣮⢳⡝⣯⣞⣮⣷⣹⢞⡵⣫⢞⣧⢻⡵⣛⢾⣩⠷⣎⠷⡡⠀⢠⢚⣾⣹⢾⡱⣏⢾⡱⣻⣷⣿⣮⣟⠶⣭⠻⡵⢯⡞⣖⡈⠠⠠⠄⡀
// ⠀⠀⠀⠀⢀⣀⡡⣴⢣⡞⣽⠎⢠⡝⡮⣝⢯⡷⣻⢵⣛⢮⡝⣮⢗⣻⢿⣿⣿⣿⢟⣮⢳⡝⡾⣜⢧⣛⡽⣺⢵⡻⣭⢗⠡⠀⠰⠘⡶⢯⣷⣹⢞⢮⣓⣟⣿⣿⢿⣝⡯⣗⠯⣝⢯⣟⡾⣔⡂⠁⠈⡔
// ⠀⠀⢠⢎⠶⣬⢳⣭⢯⢽⠃⣴⢣⣞⣳⡝⣮⢷⡹⣧⢻⡞⡽⣎⢿⡹⣟⣿⣻⣽⢻⡼⣣⢟⡵⣫⢾⡭⣟⡽⣎⢿⡜⡏⠐⠀⠀⠆⠸⣟⡶⣏⢾⣣⢻⡜⣶⡹⣏⢾⡱⣏⠿⣜⡳⢾⡽⣶⣩⢃⡀⠰
// ⢀⠮⡵⣎⡿⣼⢳⡮⣟⢮⣛⠶⣏⢾⣱⣏⢿⣎⠷⣏⢷⣹⢳⡽⣎⢷⣫⢖⣳⣎⢷⡹⢧⣯⣝⣳⡻⣞⣵⡻⣞⢯⡞⠀⠀⠀⡀⠘⠄⢳⣻⡽⢧⣏⡷⣝⡶⣝⢮⢷⡹⣝⡾⣭⣛⢷⣛⣧⢗⡎⡰⠀
// ⡭⣏⢷⢫⡞⡵⣏⢷⣭⡳⣏⢿⡹⣎⢷⣚⣯⢞⡽⣏⣾⣱⢯⣞⡽⣎⢷⣫⢶⡹⣮⣝⡷⣞⡾⣵⣻⢞⣵⣻⡼⣳⠁⡈⠀⠰⠁⡀⢘⠀⣷⢻⣏⣾⣳⡭⣞⡽⢮⡳⡽⣎⡷⣞⡽⡾⡽⣾⡹⣖⡡⠁
// ⡙⡜⣎⢧⡻⢵⣫⢞⣖⡻⣜⣳⢻⡼⣳⡝⡾⣭⣳⡽⣲⢻⡞⣼⡳⣝⣮⢳⣭⣳⢳⢮⣷⢫⣷⢫⣷⢫⣞⡵⣋⡗⠠⠀⠀⡁⠀⡁⠈⡄⢸⣻⡞⣧⢷⣛⢧⣻⣝⠷⣝⣻⡼⣻⣼⢻⣽⡳⢿⡴⢣⡁
// ⢸⡱⣎⢷⡹⢧⣛⠮⡞⣵⢫⡞⣧⢻⡵⣫⢽⣣⠷⣏⡷⣻⣞⣳⡟⣾⣹⡳⣞⣳⢯⣟⡮⣟⣾⢻⡼⣏⢾⣱⢏⠆⠐⡂⠀⠐⡀⠄⠀⡘⡀⣷⢻⡽⣯⡽⣯⢷⣞⡿⣭⡷⣽⣳⢯⡟⣾⡽⣏⢾⡡⠒
// ⢢⡝⣼⢺⣝⡷⣭⢏⡳⢭⡳⡝⣮⢳⣝⣣⢏⡷⣛⢧⣟⣳⡽⢮⡿⣼⡳⢿⣹⣟⠾⣽⣳⢻⡞⣽⣺⡝⣾⡱⡏⠰⡈⠔⠀⠀⠀⠀⡀⠔⡁⢸⢯⡽⣾⡽⣞⡷⣯⣟⣳⣟⡷⢯⡷⣻⣳⡝⣞⡣⢇⡃
// ⠧⡝⣞⣻⢻⠞⣵⢫⣝⢣⢳⠹⣜⡳⢎⣧⢻⢞⡭⣟⡼⢧⣻⢯⡽⣶⡻⣯⢷⣞⣻⣳⡽⣳⣛⠶⣏⠾⣵⢋⡜⢁⠆⡁⠆⠀⠀⠐⢠⠃⠜⡀⢯⡝⣷⣹⣏⣷⢻⡞⣷⣻⣼⢻⡳⢷⣫⡝⡮⣕⠣⡐
// ⢯⣙⢦⡝⣧⢻⡜⣧⢎⡷⣈⠳⢌⡓⢏⢶⣛⢮⡝⣮⣝⣻⣜⣧⢿⣱⢟⡧⣟⢾⡱⣧⢻⡵⣫⢻⣜⡻⢤⠃⡰⢈⠔⡀⠀⠀⠠⠈⢀⠎⠰⡁⢌⡹⣎⢷⡹⡮⣟⡽⣮⡗⣞⣯⢽⡳⣇⡟⡱⢌⡒⠡
// ⠢⣉⠖⡹⢆⣏⠾⣌⠷⡜⢥⠚⠤⡉⠎⢦⡙⡞⣼⡱⣞⡳⣞⡼⢧⢯⠾⣵⢫⣏⢷⡹⢧⡝⢧⢏⠲⡑⢢⠘⡐⢀⠠⠀⢀⡆⠀⢦⠀⢈⠡⠘⡠⠑⢎⡳⢽⡱⣏⢷⣱⢻⡼⢎⡷⡹⡜⠬⡑⠢⢌⡁
// ⠀⠀⠈⠱⡈⠦⡙⢌⠓⡘⢢⢉⠢⢡⠉⢆⡘⠴⢡⠳⡱⣙⠞⡼⣋⠾⣙⣎⠳⣎⠳⣍⠳⡜⢃⠎⡱⢈⠆⢡⠂⠁⠀⢰⡻⠀⠀⢸⠆⠀⠢⢑⠠⡉⢆⠡⣃⠳⣉⠞⡬⢓⠮⡙⠴⠑⠨⢀⡁⡁⠂⠄
// ⣄⠠⢀⠀⠀⠑⡈⢂⠱⢈⠂⠆⡁⠆⢩⠠⡘⢄⠃⢆⠱⣈⠚⡰⢉⠎⡱⢈⡓⢌⠣⢌⡑⠌⢢⠘⡄⢡⠊⠤⠁⡀⢂⠘⠇⠀⠀⠈⠇⠀⠑⡌⠤⠑⡨⠐⡄⠣⡐⢌⠰⡉⠔⡉⠄⢀⡜⢦⡵⣉⢖⡀
// ⣯⢶⣂⠂⠄⠀⠐⡀⠒⡈⠰⢈⠐⠌⢂⡐⠁⠂⠈⣠⢠⢀⠀⠀⠁⠎⡐⠡⢌⠂⡜⢠⠂⢍⠂⠥⢘⠠⠌⠀⠀⡐⣁⠂⠄⠀⠀⢈⠔⠀⠀⠰⢈⡑⠄⠣⢌⡁⢒⠨⡐⠌⡐⠀⠀⡲⣌⢳⢲⣉⢞⡤
// ⣟⢾⡱⢧⡘⠐⡄⢀⠁⠀⠁⠂⠌⠐⠠⠀⠁⢠⠹⢤⣇⢎⡱⣀⠀⠄⡁⢃⠢⢁⠒⠄⡩⠐⡌⠂⠅⠂⠀⠀⠡⠐⡠⠘⠀⠀⠀⠌⠂⠁⠀⠀⠂⠌⡈⠅⢂⠌⠤⢁⠰⠀⠄⠀⠀⣳⠼⣩⢶⣩⢞⡵
// ⢊⠧⡙⢇⢣⠘⠠⠌⢂⠡⠐⣀⠢⠀⠄⠀⠄⣋⢗⣊⣩⢢⡕⢦⠂⠀⠀⠂⠄⠡⢈⠒⠠⠁⠄⠉⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠠⠈⠐⠀⠂⠐⠀⠀⠠⠇⠉⠈⢓⣮⣛⡆
// ⠀⢆⢉⠂⠆⡉⠆⢡⠂⡁⠎⡀⠢⡁⠀⠈⠄⡹⢎⠶⣡⠳⣜⣣⠃⠀⠀⠈⠀⠁⠀⠈⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⣄⢤⡠⣌⡤⡞⣶⡹⠀
// ⠈⠄⠊⠌⢠⠁⡘⠠⠘⠐⠠⡑⢠⠁⡀⠈⡄⢹⢎⡯⣕⣛⢦⡳⣁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⢠⠲⣍⠳⡜⠆⠛⠀⣸⣙⠦⠁⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠁⠂⢁⠘⢠⠂⠻⣴⢫⡜⢧⣛⣡⠠⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠁⢫⠳⣌⠓⠀⢀⡄⢦⣓⠮⠁⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⡂⠙⢎⢹⢎⣡⠤⠔⢀⡀⠤⠤⠤⠤⠤⢄⡀⠀⠀⠄⠐⠀⠁⠀⢀⠀⠀⠀⠀⢀⠀⠀⢀⠀⠀⡀⠀⠀⠐⠀⠢⢘⡽⠀⢀⡰⣋⠼⡿⠩⠃⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⢀⠤⠀⠤⠐⠂⠉⢉⣉⡁⠒⠀⠒⠠⠤⢄⣀⠀⠀⠠⢀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠄⠂⠁⡠⠊⠀⠀⣀⣤⣶⣿⣿⣿⣿⣷⣿⣿⣿⣶⣦⣄⣐⠢⢄⡑⠢⣄⡁⠂⢀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠊⢀⣀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣵⣮⡙⠶⣄⠁⠀⡀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⢀⠀⠈⣠⣞⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣮⣳⣦⠑⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⣠⣾⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠊⣌⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠁⡌⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⠁⢰⣱⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄⠀⢘⢼⡇⣿⣿⣿⣿⡿⣿⣿⡟⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⣿⡎⠡⣿⣿⣿⣿⡃⣿⣿⡷⢄⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⢻⣦⣿⠿⠿⣿⣦⣻⣿⡱⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠤⠀⣨⠃⠆⠀⣬⣩⣝⡿⠅⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⢀⠀⠀⠻⠻⣿⣿⣿⣮⣄⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡔⠒⠂⠁⡠⠃⢰⠉⠘⡾⠣⢭⣿⠃⡰⡿⠓⣿⣿⣿⣿⡟⠉⡽⣿⢿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠤⠒⠉⠀⠀⠃⠊⡉⢀⡀⠀⠀⠀⠁⠀⠀⠻⣿⣿⢯⠀⢠⡾⣏⢻⡏⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⡁⠀⠀⠀⠀⠀⠰⠈⢆⠰⢁⠂⡄⢀⡠⠀⠀⢻⡿⡇⢻⣿⢣⡏⢼⢣⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢽⠀⠀⠀⠀⠀⠁⠀⠀⠂⠁⠂⠐⠁⠀⠀⠀⠀⣿⠇⣈⠶⠛⣰⡿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣧⣥⣶⠛⠍⠠⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢃⡉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⢃⠀⠀⣀⠰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⢀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠗⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡎⣦⠞⡡⢂⣼⣿⣿⣿⣿⣿⣿⠟⠛⠁⠐⠀⠀⢀⠆
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡆⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⢼⡏⣿⠤⡑⠤⢘⣿⣿⡿⢿⣿⣄⠀⠀⠀⠀⠀⠀⠄⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠒⠒⠢⠤⠤⢀⣀⠀⣀⠤⠤⢒⠪⡑⠤⢺⢻⣁⠣⡐⢢⢘⣿⣿⣿⡈⠻⣏⢿⣎⠉⠉⠉⡙⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠑⢶⠁⠊⠔⡁⢊⡝⣺⠄⡱⠐⠠⢘⣾⠻⠛⡇⠀⢻⠈⢻⡄⠀⢰⠁⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡇⢈⠐⢂⡽⢠⠏⡐⠄⡡⠁⠌⣿⠀⢸⠁⠀⠀⠀⠀⢷⠀⡆⠀⠀⡀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠋⠔⠉⡐⠠⢈⠄⡁⢂⢸⡆⠀⠀⠀⠀⠀⠀⠈⡇⡇⠀⠀⡃
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠠⠤⠐⠂⠒⠀⠀⠹⠀⠀⠀⠀⠀⠂⢀⠁⢂⠀⡐⠀⠸⡇⠀⠀⠀⠀⠀⠀⡰⠀⢇⠀⠀⠠
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⠀⢸
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠋⠀⠀⠀⢀⠀⠀⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡘⠁⣀⠂⠁⠔⢙⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⠈⠄⢁⠈⠄⠐⠀⠀⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠇⢀⣀⠥⠒⠀⡄⠉⢀⠤⠒⠉⠉⠙⠒⠒⠤⢤⣁⠌⡀⢂⠀⠀⠀⠀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠔⠊⠁⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡐⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠒⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⢀⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠴⠋⠁⠀⠀⠀⠀⠀⠀⠀⡰⠃⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠂⠀⠀⠀⠀⠀⠀⢀⡴⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⢋⠐⠠⠈⠀⠀⠐⠀⠀⢀⠜⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⠊⠀⠀⠀⠀⠀⠁⠀⡠⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠟⠀⠄⠊⠀⠀⠀⠀⠀⠀⢠⠊⠀⠀⠀⢠⠇⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠁⠀⠀⠀⠀⠀⠀⠀⢀⠜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡸⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⢀⠠⠂⠁⠀⠀⠀⠀⠀⠀⠀⡠⠐⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⣶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⡗⡖⠂⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⢠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣹⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⡰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠈⡄⠀⠀⠀⢰⠁⠀⠀⢀⡤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢀
// ⡀⠀⠀⠀⠀⠀⠀⢘⣄⠀⠀⢜⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢆
// ⡀⠀⠀⠂⠀⠔⡍⠁⠀⠑⡲⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢺
// ⠀⠀⠀⡀⡾⣍⠁⢀⣠⠞⠁⠀⢣⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⡹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠣
// ⠀⠀⠀⠀⠀⠉⣻⢯⡜⠀⢀⠄⠘⡍⠦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣂⠴⡇⠀⠀⠀⠀⠀⠀⠀⠀⢠⢡⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣰⢡
// ⠀⠀⠀⠀⠀⡀⢻⡜⡇⠀⢸⣄⠀⠈⢄⠈⠲⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡤⠞⠁⢸⠁⠀⠀⠀⠀⠀⠀⠀⠀⠎⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⡿⣿⢨
// ⠀⠀⢀⠀⡀⢳⡀⣹⠘⣆⠀⢻⡝⡢⡄⣉⡐⠀⠈⠙⠒⢶⣒⠶⢲⣶⣞⡫⠅⠠⠀⠀⣾⠀⠀⠀⠀⠀⠀⠀⠀⡸⡘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⠽⢟⡠
// ⠀⠀⠀⠑⡜⢀⠻⠟⠂⢻⣆⠢⡙⠙⠘⣆⠀⣀⠀⠀⠀⠀⠈⠉⠉⠘⠢⠍⢛⡳⠶⣦⡇⠀⠀⠀⠀⠀⠀⠀⢠⢣⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⡈⠀⡐
// ⠀⠀⠀⠀⠈⢆⠀⠀⠀⠀⣻⣿⣕⡢⠀⠘⠄⠀⠉⠙⠚⣒⠒⠒⠂⢠⡰⠚⣁⣤⣾⣿⠁⠀⠀⠀⠀⠀⠀⠀⣠⣧⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⢢⠁⠀⠡
// ⠀⠀⠀⠀⠀⠀⠉⠒⠐⠉⢸⣿⣿⣿⣦⡈⠙⠶⢄⣀⣤⣴⣋⣥⣼⣶⣶⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⣀⣴⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⣀⠀⠀⢀⣀⣀⣿⠣⠃⠀⠘
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⠿⠿⠿⠿⣿⣿⣿⣿⣛⢿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢀⣠⣴⣾⣿⠿⠋⠹⠀⠀⠀⠀⠀⠀⠀⠀⠙⠷⠦⠷⠶⠂⣴⣦⣴⣶⣷
// ⠀⠀⠀⠀⠀⣀⠤⠈⠄⢉⣉⣉⠩⠂⠀⠀⠀⠀⠀⠈⠉⠉⠈⠊⢉⠉⡉⣭⣿⣿⣧⣤⣶⣿⡿⠟⠉⠀⡀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣋⣹⡇⠀⡗
// ⠈⠁⠌⠐⠄⢂⠰⢀⠂⢀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣶⣶⣶⣾⣿⣿⣿⠿⠛⠋⠁⢠⠀⠀⠐⠀⢰⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⡇⠀⡜
// ⢀⠂⡄⢀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣿⢻⡿⣼⣿⣿⡏⠠⠐⠈⠐⢸⠀⠀⡁⠀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⡇⠀⠼
// ⠲⠥⣜⣤⣉⡐⠠⢂⠠⢀⠀⢂⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠣⣛⣿⣿⣿⠐⠡⠈⠀⡠⠋⠀⠀⠀⢠⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡸⠿⢥⠀⣹
// ⠀⠀⠀⠈⠉⠉⠓⠶⢤⣆⣉⠆⡜⡓⠦⣄⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⡟⡨⠐⠀⠀⠁⠀⠀⠀⠀⡸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⠅⠐⠾⠆⠀⣸
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⣿⣦⡙⢦⠩⡝⢆⠄⠀⠀⠀⣤⣿⣿⣿⣿⣿⡃⠅⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠂⢸
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣦⡓⡸⢌⡊⠔⣠⣾⣿⣿⣿⣿⣿⣿⡐⢈⠀⠀⠀⠀⠀⠀⠀⣜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣆⣢⣵⣾⣿⣿⣿⣿⣿⣿⣿⡟⣀⠂⠀⠀⠀⠀⠀⠀⢰⢨⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡗⠠⠀⠀⠀⠀⠀⠀⠀⡆⠨⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡐⠡⠀⠀⠀⠀⡤⠀⢠⠀⡰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠠⢁⠀⠀⠀⠀⠀⠀⢸⠀⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠐⠠⠀⠀⠀⠀⠀⠀⣼⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠂⠀⠀⠀⠀⠀⠀⣿⣶⣼⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⠐⠀⠀⠀⠀⠀⠀⠰⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡟⣯⡿⣝⣯⠿⣽⢯⣟⡿⣻⣟⣿⣿⣿⢿⣿⣿⣿⣿⣻⣿⣶⣾⣷⣬⡁⠈⢀⣀⣵⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡰⢌
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⢯⣽⢯⣟⢾⣵⣻⡽⣾⡽⣽⣳⢯⣟⣿⣿⣯⣿⢾⣿⣿⣟⡾⣯⢿⣿⣿⣿⣷⣤⣿⡇⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠠⠁⠊⠀⠁⠀⠀⠀⠀⠀⠂⠘⠂
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣏⣿⢯⣿⢾⣟⡾⣳⣟⣳⣟⡷⣯⣟⣾⣿⣿⣿⢾⣿⣟⡾⣿⣿⣽⣿⣿⣏⣿⣿⣿⣿⣷⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡳⣞⣿⣿⡯⣿⢾⣽⣳⢯⡷⣯⣟⣷⣻⣽⣿⣿⣿⣿⡽⣯⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⢀⣀⣄⡀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⢯⣗⣻⣿⣟⡾⣽⢿⣛⣾⡽⣯⢟⣷⣻⢾⣽⣿⣿⣞⣯⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⣀⣀⣠⣶⠿⣻⠿⠛⢹⣿⢿⠟⠛⠉⠐⣌⢻⡀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡿⣝⣾⣿⡟⣼⣻⣏⣿⣹⢺⣟⣵⣫⣶⡿⣾⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡄⢀⣠⣴⡾⢋⣽⣿⣯⣿⠋⡔⠉⣼⣿⠇⠀⠀⠀⠣⢌⣻⠇⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡿⣽⣿⣟⢾⣿⡵⣯⢾⣱⣯⣿⣷⢯⣷⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣷⣾⣿⣿⣿⣴⣿⣿⣿⣿⠃⢌⠀⢰⣿⡏⠀⠀⠀⠀⠱⢨⠼⡇⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣻⣿⣿⣯⢿⣿⣟⣯⣿⣯⣿⣿⣿⣯⣿⣟⣿⣿⣳⣿⣿⣿⣈⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢳⣿⢣⠘⣀⡞⢸⣿⠁⠀⠀⠀⠀⢀⠃⢾⠁⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣻⣽⣿⣿⣯⢿⣿⣻⣾⢿⣿⣽⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣭⣴⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣧⣿⢋⢆⠃⣾⠀⣸⡟⠀⠀⠀⠀⠀⠀⠎⡽⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⣾⡟⣽⣿⣿⣿⣯⣿⣿⣏⣿⣿⢿⣿⣧⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⡟⢯⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⡿⢿⡿⢣⢍⣢⣭⡇⢀⣿⢃⠀⠀⠀⠀⠀⢈⢒⡇⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⣼⡟⢰⣿⢾⣿⣯⣷⣿⣿⣿⣞⣿⣿⣿⣿⣦⣛⢿⣿⣿⣿⣿⣿⣿⣽⠏⠉⠗⣚⣩⣾⠟⣭⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣗⣿⣿⣿⣿⣷⣿⡏⢠⠃⢸⡟⠰⠀⠀⠀⠀⠀⢌⣺⠁⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⢰⡿⠀⣾⡏⣿⣿⡷⣿⣿⣿⣿⣧⣧⣼⣿⣿⣿⣿⣶⡹⢿⣿⣿⣿⣿⡸⢄⠉⠉⡙⣉⠡⣚⣵⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⣿⣿⣇⡞⠀⣼⠁⠁⠀⠀⠀⠀⠈⡴⡇⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⣿⠁⢸⡟⠀⣿⣯⣿⣿⣿⣿⣿⣿⣿⣿⣟⠻⢾⣫⣼⠗⠀⠙⢟⡻⣿⣷⡂⠀⠀⠐⠀⠂⢡⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⠃⣿⣿⠟⠀⢠⡇⠀⠀⠀⠀⠀⠀⣘⡾⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⢸⡇⢀⣿⠁⠀⣿⣿⣳⣿⣿⣿⣿⣿⣿⣿⣬⠉⡒⠋⠁⠀⠀⠀⣤⠙⠌⠻⢆⡀⠀⠀⢀⣰⡿⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⠋⠀⠀⣸⠁⠀⠀⠀⠀⠀⠐⣼⠁⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⢸⢀⣾⠏⠀⢰⡿⣿⣳⣿⣿⣿⣿⣿⣿⣿⣿⣷⣌⢡⣁⡀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠤⠚⢱⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣸⠇⠀⠀⢠⠇⠀⠀⠀⠀⠀⢀⣹⡏⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⣿⣾⠟⠀⢀⣾⣟⣿⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡻⢎⣀⣀⠄⠀⠀⣤⣠⣤⡀⠀⠀⠀⣠⡿⣿⣿⣿⣿⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢟⠏⠀⠀⢠⠏⠀⠀⠀⠀⠀⠠⣜⡾⣷⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⢠⣟⡞⠀⠀⣼⣿⣞⡿⣾⣿⣾⢿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⣀⠀⠀⠀⠀⠉⠉⠀⠀⢀⡼⢏⣵⣿⣿⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠣⠋⠀⢀⣴⠏⠀⡄⠀⠀⠀⣀⢳⡞⠀⢿⡀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⣴⣟⣷⣇⢀⣼⠏⢸⢾⡿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣿⡲⢤⣄⣀⣠⠖⣏⣱⣾⣿⣿⣿⣿⠇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠓⢶⣾⠟⠁⠀⡜⠀⠀⠀⡰⣬⠟⠀⠀⠘⣧⠀⠀⠀⠀⠀⠀
// ⠀⢠⣾⡳⠋⢸⢾⡾⡟⠀⣾⣿⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢷⣃⢎⠲⣁⠏⣴⣿⡿⢻⢽⣿⣿⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⢃⠈⣆⠀⠀⠀⣠⠞⠀⠀⢀⡰⣳⠋⠀⠀⠀⠀⠘⠆⠀⠀⠀⠀⠀
// ⣰⣻⠞⠀⢀⣼⣿⣿⠀⢰⣟⣾⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢋⡜⣻⣆⠣⠜⡒⢼⡿⣈⠗⣚⣏⠿⣼⣿⡿⣿⣿⣿⢿⣙⢮⡿⠃⠀⠈⠒⠶⠾⠋⠀⠀⢀⢦⡟⠁⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀⠀
// ⡗⠁⠀⣠⡾⢃⣽⡾⣧⡾⣽⣯⣿⣿⣿⣿⣿⡿⠻⠿⠿⣿⣿⣿⣿⣿⣿⣯⣇⠎⡴⢡⢎⠳⡜⢺⣄⢛⣦⢙⡴⢪⠜⣆⣛⣷⣿⣿⣟⢣⠎⠻⠁⠀⠀⠀⠀⠀⠀⠀⠀⡄⣯⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣧⠀⠀⠀
// ⠀⢀⣾⢋⣴⠟⠁⠻⣽⡿⣿⣾⣿⣿⡟⠉⠉⢿⣄⠀⡸⠛⢉⠛⣿⣿⣿⣷⣮⣛⠍⠲⢌⠣⡜⡄⠛⡷⢏⠲⡌⣧⣻⠞⣋⢶⣿⣿⣏⠆⠁⠀⠀⠀⠀⠀⠀⠀⠀⡄⣳⣾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡄⠀⠀
// ⣴⣿⣵⠟⠁⠀⢀⣼⣿⣿⢷⣿⣿⡟⠀⠀⠀⠀⠙⣏⠀⠁⢢⡀⠸⣿⣿⣿⣿⠿⣿⣷⡾⠶⢶⣌⢓⡰⢊⣕⡾⢛⠤⡙⡔⢺⣿⢿⣿⠀⠀⠀⠀⠀⠀⠀⠀⡄⣣⣼⡏⢽⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⠀⠀
// ⠟⢏⠀⠀⠀⢀⣾⣿⣟⣿⣿⣿⣿⡁⠀⠀⠀⠀⠀⠸⡄⠀⠀⠈⠂⣿⣿⣿⣿⣿⣷⣤⡙⣷⣬⡘⠳⠐⢃⠌⡰⢉⠆⡱⢈⣽⣿⡎⢿⡆⠰⣇⠀⡀⢄⠢⣍⣶⣿⣿⡅⢺⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡿⠀⠀
// ⠀⠀⠉⠒⢀⡾⠛⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⢱⠀⠀⠀⢠⣿⣿⣿⣇⢻⣿⣿⢿⣾⣿⣷⠀⠁⠂⠌⢀⠁⠂⠁⢰⣿⣿⣷⡈⢻⡄⢹⡖⣈⠦⡿⣾⣿⣿⣿⣿⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣟⠀⠀
// ⡰⢪⡕⡴⠃⢠⣾⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠈⢿⣄⡀⣼⣿⠟⣹⠇⠀⢿⣿⠀⣿⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠘⠆⣻⣿⣿⣦⣽⣾⣧⣝⣾⣷⢻⣿⣿⣿⣿⣷⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠇⠀⠀
// ⢡⣣⠞⠀⣰⣿⣿⢋⣿⣿⣿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣷⡿⠟⠊⠁⠀⣠⣿⣏⣾⣿⣾⡿⢿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢿⣿⣿⡞⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⣠⣾⡿⠀⠀⠀
// ⠚⠁⠀⢀⣿⣷⠏⣼⣿⣿⣿⣿⣟⠀⠀⠀⠀⠀⠀⢀⣠⣶⢿⡟⠀⠀⢀⠄⢊⣿⣿⣿⣿⠟⠛⠉⠁⠀⠀⠰⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢿⣿⣿⣿⣿⢿⣿⣿⣷⡀⠀⠀⠀⠀⠒⠛⠛⠁⠀⠀⠀⠀
// ⠀⠀⢀⣼⣿⣟⣴⣿⣿⣿⣿⣿⡏⠀⠀⠀⣀⣤⣾⣿⠟⣉⢾⠇⠀⠐⣁⢶⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⣿⡆⠈⢻⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⣠⣾⣟⣾⣿⣿⣿⣿⣿⣿⣿⠇⢀⣤⠾⠛⠋⠁⠀⠈⡔⣾⠖⢀⠜⣠⡾⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢙⢄⡀⠻⣿⠙⠳⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀
// ⡴⣟⡷⣯⣿⢿⣿⣿⡿⣿⣿⣿⡴⠋⠀⠀⠀⠀⠀⠀⠐⣸⡿⠀⠘⡶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠲⢿⣷⡀⠀⠻⡷⣄⠀⠀⠀⠀⠀⠀
// ⡸⠋⠉⠙⢣⣿⣿⣿⣇⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⢰⡿⠁⠀⢰⣁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡝⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡖⣦⡘⣧⡀⠀⠉⢌⠳⡀⠀⠀⠀⠀
// ⠀⠀⠀⠀⢸⣿⢾⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠁⠀⠀⠘⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠨⣿⠌⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠓⡛⠁⢣⠀⠀⠀⠡⡘⢆⠀⠀⠀
// ⣦⣀⣀⣤⢾⣿⣻⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⢸⠇⠀⠀⠀⠀⠀⠀⠀⠀⣠⢴⣲⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢽⡚⡌⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⠘⢸⠀⠀⠀⠀⠐⣌⡆⠀⠀
// ⢿⡟⠏⠻⢿⣷⣻⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠻⠟⠗⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢺⡝⡔⠁⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⣼⡇⠀⠀⠀⠀⢸⡷⠀⠀
// ⡏⠀⠀⠀⠀⠙⢿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠠⢁⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢾⡹⢬⡁⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡇⠀⠀⠀⢀⣾⣿⠀⠀
// ⢇⡀⠂⠀⠀⠀⠈⠙⠿⣯⠀⠀⠀⠀⠀⠀⢀⠑⡂⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⡘⣽⡝⢦⡃⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣺⣿⣿⣷⣄⠀⢀⣾⣿⡇⠀⠀
// ⡄⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⣄⠀⠀⠀⠀⠠⢃⡕⢺⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⡑⢼⡟⡼⣩⠿⣦⡡⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠰⣌⣷⣿⣿⣿⣿⣿⣶⣿⣿⣿⠁⠀⠀
// ⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⢐⡈⢳⡄⠀⢠⠡⢣⠜⣹⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢄⠣⣹⢾⡙⠶⡡⢞⡩⢷⣯⡰⠡⢄⠠⣀⠀⡄⢠⢂⡜⣬⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀
// ⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⡘⢄⢻⡄⢣⠜⣡⢞⣿⣿⣷⡆⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠘⢤⡷⢏⢧⡙⣣⠕⡪⠜⡡⢞⡹⠿⣮⣵⣦⣹⣬⣷⣾⣾⡙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀
// ⣿⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠐⡈⢦⡙⢦⡙⢦⣻⢡⣿⣿⣿⣦⣐⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠰⣈⣦⢽⢫⠜⡩⢆⡱⢢⠙⠄⠃⠁⠊⠔⢫⠔⢦⠣⣝⢲⣿⠿⣿⡅⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀
// ⣿⣿⣿⣇⢤⠀⠀⠀⠀⠀⠀⠀⢈⠒⡜⢦⣹⣳⣿⣿⣿⣿⣿⡿⢠⣷⠶⢤⣤⣀⣀⣀⣄⣠⣤⣬⠶⢓⢋⠆⢣⠊⠌⠑⡀⠂⠁⠈⠀⠀⠀⠀⠈⠐⣊⠦⡙⢦⣿⣿⣨⣿⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀
// ⣿⣿⣿⣿⣿⣶⢄⡀⠀⠀⠀⠀⠠⢩⢜⣣⢷⢃⣿⣿⣿⣿⣿⣇⣿⣿⣧⠀⠀⠈⠉⠉⠈⠁⠀⠀⠐⠈⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠠⢎⣹⣿⣿⢿⣿⣿⢿⣿⣿⣿⣿⣿⣿⠙⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣧⣿⣦⣿⣥⣤⣀⣀⠂⡇⣞⣼⣿⣿⣿⣿⣿⢿⣿⣿⣿⡿⠛⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⣨⡿⢻⣿⣿⠏⠀⣸⣿⣿⣿⣿⣿⡿⠀⣿⢿⣿⣿⣿⣿⣿⣿
// ⡇⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠙⣾⣾⣿⣯⣿⣿⣿⣏⣼⡿⠛⠙⠁⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠱⣿⣿⣿⡿⣏⠀⣰⣿⣿⣿⣿⣿⣿⡇⠀⡿⢸⣿⣿⣿⣿⣿⣟
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⢰⣿⡿⠟⠛⢫⡹⠖⠉⠁⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢻⣿⡿⢻⡇⠉⣹⣿⣿⣿⡟⣿⣿⡿⢀⣼⣡⣿⣿⣿⣿⣿⣿⣯
// ⡿⢿⠟⣿⣿⣿⣿⣿⣿⣿⡿⠟⢋⣁⡤⠒⣠⠞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢲⣿⣿⡀⠘⢛⣿⣿⣿⣿⡟⢀⣿⣿⣅⣾⣿⣿⣿⣿⣿⣿⣿⣿⣧
// ⣿⣿⢰⣿⣿⣿⣿⣿⠛⢣⠐⢌⣖⠡⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡰⠂⠀⠀⠀⠀⠀⠀⠀⠀⢨⡟⠙⢿⡿⠿⣻⣿⣿⣿⠟⣠⣿⡿⣻⣿⣿⢟⣋⣱⣿⣿⣿⣿⣿⣿
// ⣿⢿⢿⣿⣭⡿⠃⠄⠀⡠⠈⠸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠔⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠀⠀⠀⣹⣾⣿⣿⣿⣿⣾⠿⠋⠀⠹⡸⣏⡉⠉⣿⣿⣿⣿⣿⣿⠋
// ⡟⠁⢸⡾⠋⠀⢡⡤⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡾⢽⠂⢀⣼⣿⠟⠉⠉⠋⠉⠀⠀⠀⣆⣠⠇⠀⠀⣼⣿⣿⣿⣿⣿⣧⡀
// ⣇⠀⠋⠀⠀⠀⡺⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡃⢻⡇⢸⣿⢻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⡿⠏⠉⠉
// ⣿⡀⠀⠀⠀⠠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠌⡑⣇⠘⣿⠈⢆⡀⠀⠀⠀⣀⠀⠀⣀⠤⣊⡽⢟⠿⠛⠉⠁⠐⠠⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣶⣾⣿⡿⠿⠿⠛⠛⣶⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣯⠗⠊⠉⣡⠖⣁⣠⣤⣸⣿⣿⣿⣿⣿⣿⣶⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⡿⠛⠉⠀⠀⠠⣌⡥⠞⡗⠒⢶⣿⣿⣿⣿⣿⣟⠛⠋⠃⢸⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣄⠀⡀⠀⠀⠋⢁⡠⣢⣷⠾⠿⢿⣿⣿⣿⣿⣿⣧⡀⠺⣟⡄⣼⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⠟⣡⢮⠆⠀⢀⡴⢋⡾⠋⡠⣶⠠⢼⣹⣿⡿⢿⣯⣟⠛⡆⠈⢷⣻⡉⢿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣏⣴⣷⠏⠀⠀⠈⣠⠋⣴⣼⢳⡇⡀⡇⢸⣿⣿⠛⢿⡿⣷⣾⡀⢸⣯⣹⠀⢳⡹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠛⠛
// ⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⠏⠄⠀⠀⣰⡃⣾⠁⢏⣿⢰⠃⢳⣿⣿⣿⣄⢰⡀⢈⠻⣞⠿⠉⢻⣇⢢⢣⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣛⣻
// ⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⡏⠀⢀⣼⡿⢠⠇⡀⣼⣿⠘⡆⡄⢻⠟⠣⣹⣾⡟⢼⣆⣹⣦⠀⢸⣿⣼⡎⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉
// ⠀⠀⠀⠀⠀⢠⡿⡼⢻⣿⣿⣿⡿⢠⣴⣿⡿⠃⢀⣼⣿⣿⣿⠀⡟⠸⢸⡇⠀⠙⢿⣿⡜⣿⡹⣿⣧⠈⡇⠀⣧⠸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⢸⣿⣇⣿⣿⣿⣏⣴⣿⣿⡿⠁⢠⣿⣿⣿⣿⣿⡜⡧⠀⢸⠀⠀⠀⠈⠻⣿⡽⣧⢋⣿⣿⡋⢺⣾⣧⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣰⣿⣿⣿⣿⠀⣿⠇⣇⠀⢸⠀⠀⠀⠀⠀⢹⣿⣿⣶⣿⣿⣷⣼⣿⠙⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⢸⣿⣿⣟⣹⣿⣿⣿⣿⣿⣿⣿⣿⡿⣽⡿⡄⣿⣾⣿⣠⣇⣠⡤⠶⠚⠉⠉⢻⣿⣿⡿⢿⣿⣟⢿⢦⣹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠃⣇⣼⣿⣿⠁⠀⣠⣤⣶⣶⣶⣶⣿⣿⣷⢸⣿⣿⣷⣌⣿⡻⠦⠄⠤⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⢹⠃⠀⠀⣿⣿⣿⡏⠀⣾⡿⢿⣿⣿⣿⡸⢹⣿⡏⠸⣿⡏⣿⣾⡏⠛⢶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⣠⠞⣽⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣶⣿⣶⣶⡀⣿⣿⡿⠀⠀⠋⠠⠼⠛⠛⠉⠁⢸⣿⡇⠃⣧⡇⣷⣿⣱⡀⠀⠈⠻⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⢀⣼⠃⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣝⢿⣿⣿⣯⡀⠀⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡇⣤⣿⣴⣿⣇⡟⠷⣄⠀⢸⢯⠙⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⣾⡇⠀⣾⣿⣿⣿⣿⡿⣝⣿⣿⣿⣿⣭⡟⠋⠉⠀⠀⣸⣿⡏⢀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠈⠙⠋⠈⡆⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⢿⡀⢸⣿⠏⢿⣿⡏⣗⢿⠈⢻⣿⣿⣿⣆⣀⠀⠀⣰⡟⠙⠀⠘⠆⠀⠀⠀⠀⠀⢀⡐⠱⣹⢿⣿⣿⣿⣿⣿⣿⣄⠀⠀⠀⠀⠀⣇⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⢁⣿⠋⠀⢸⣿⣠⣿⣯⡀⡆⢻⣎⡙⣿⣍⣴⠞⠋⡔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⣰⣻⣿⣿⣿⣿⣯⡞⡈⠛⢦⣄⡠⠀⣰⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⣸⠃⠀⠀⢸⣿⣿⣿⣿⡇⣧⠘⣟⠛⠻⡟⠳⣄⠊⠀⠀⠀⠰⠶⠶⠾⠋⠁⠀⢀⣼⠃⣿⣿⣿⣿⡿⢻⡇⠉⠉⠉⠉⠉⠝⠉⠉⠁⠒⠤⡀⠀⠀⠀⠀⠀⠀⠀
// ⠀⢰⠇⠀⠀⠀⣾⣽⣿⣿⢿⢇⣿⢰⢿⡄⠀⣷⣀⠏⢹⡦⣄⡀⠀⠀⠀⠀⠀⢀⡴⠛⠁⢰⣿⣿⣿⣿⢇⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⣄⠀⠀⠀⠀⠀
// ⠀⣾⠀⠀⢀⠀⡏⣿⣿⠟⣾⣿⣸⢸⠼⣿⡄⣿⡟⠀⠀⠱⡀⠉⠑⠒⠤⠤⠔⠋⠀⠀⠀⣾⣿⣿⣿⡿⠞⠀⠀⠀⢀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢦⠀⠀⠀⠀
// ⢸⣿⡆⠀⠁⢸⢀⣿⣧⣼⡿⠁⢸⡏⠀⠘⢿⣿⡃⠀⠀⠀⠣⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⠟⠉⠀⠀⠀⣠⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⡀⠀⠀
// ⠸⣷⡿⢄⣠⣇⢼⣿⣿⠉⠀⠀⡸⠀⠀⠀⠀⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡿⠋⠀⠀⢀⡴⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀
// ⠀⠻⣍⠚⣿⣧⠀⢿⣿⣆⠀⠈⠁⠀⠀⠐⣒⡢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⡟⢁⡴⠒⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⡄⠀⠀⠀⠀⠈⢆⠀
// ⠀⠀⠈⠉⣿⣿⡆⠈⠻⣿⣧⠀⠀⠀⠀⠀⠀⠈⠉⠐⠒⠒⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡷⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠈⠢
// ⠀⠀⠀⢸⡏⢯⣻⠀⠀⠀⠉⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡏⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⣇⠈⠻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡾⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠊⠹⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⢱⡀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣦⡀⠀⠀⠀⠀⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢇⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠠⠒⢳⠀⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄⠀⠙⠧⣉⠲⠤⣀⡴⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠇⠀⠀⠀⠘⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡀⠀⠀⠀⠈⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣦⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡑⢄⠀⠀⠀⠀
// ⠀⠀⠀⠀⠰⠀⠀⠀⢇⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠙⢤⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⡸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠑⢤
// ⠀⠀⠀⠀⠀⠀⠀⡖⠀⡇⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢀
// ⠀⠀⠀⠀⠀⠀⠀⠧⡈⡇⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⢀⠔⠈
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠁⠀⠠⠀⢀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⡰⠁⠀⢀⠆⠀⢠
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠸⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠛⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠼⠟⠀⠀⣠⡞⠁⠀⠀⠺⢶⣾⢸
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⠀⠈⠳⢄⡀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡤⢺⡏⠈⠲⣄⠀⠀⢸⡼⣟
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡾⠄⠙⠦⣀⠀⠀⠀⠀⠠⡀⠀⠀⠀⠀⠀⠀⠀⢠⡴⠏⠀⠀⠀⠀⠀⠉⠛⠧⠦⣄⣠⡤⠤⠴⠒⠉⠁⠀⠛⠀⠀⠀⠈⠑⠢⣀⣾⠁
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠈⠑⠲⠬⣟⣒⣈⣀⣀⣀⣀⡤⠴⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⡿⡄
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⣸⠉⠓⠦⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠁⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⠀⠀⠀⠀⠀⠀⠀⢀⡼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⢿⡿⣿⢿⡿⣿⣻⢿⣻⣟⣿⣻⣽⣻⢯⣟⣯⠿⡽⢯⡿⣝⣯⢻⡽⣭⢯⡽⣭⢻⣭⢻⣭⢻⣭⢻⣭⢻⡝⣯⢻⡝⣯⢻⡽⣭⢋⡷⣉⠒⡔⡰⣌⡳⣭⢳⡹⡜⣂⠆⠀⡀⠠⡄
// ⣿⣿⣿⣽⣾⣿⣽⣾⣿⣾⣷⣿⣻⣽⣿⣻⣽⡿⣽⣷⣻⢯⣟⣾⣳⣟⡾⣭⣟⡾⣵⣻⣽⣻⣜⣯⣞⣧⢻⡜⣮⢳⣭⢳⣎⠷⣎⢷⢪⢗⣮⢳⣝⣮⣻⡼⣭⣳⡝⣦⢏⠴⡡⣍⠶⣱⢣⣝⠲⡍⠖⠩⠔⢠⢡⠰⡱⢌
// ⣿⡿⣾⣟⣷⡿⣽⣷⣻⣾⣳⢯⣟⡷⣯⣟⣷⣻⣟⡾⣽⣻⣞⡷⣻⢞⣽⠷⠞⣋⣉⣩⣽⣯⣷⠟⢛⠫⢭⡉⢉⠉⠒⠯⣜⡻⣜⣣⠟⣮⡚⢷⣚⡖⡧⣝⠶⣣⠞⣔⡊⢖⡱⣌⠳⣍⠳⡈⠁⠀⠀⠀⠀⢂⢎⡱⡑⢎
// ⣿⣟⣷⢿⣯⣟⡿⣞⡷⣯⣟⡿⣾⣽⣳⡟⣾⣳⢯⣟⣳⠿⣼⠽⠛⣩⡴⢞⡛⠭⣑⡯⢛⠡⢂⡍⠦⢹⡧⣝⣦⣻⣒⠤⡀⠉⠓⢮⣛⠶⣹⢧⢳⡞⣵⢫⢞⣥⡛⣤⢋⢦⠳⣌⠳⣌⡑⢂⠀⠀⠀⠀⠀⡜⣢⢱⡉⢆
// ⣿⣞⣯⢿⡾⣽⣻⣽⣻⢗⣯⣟⢾⡶⢯⣟⣳⢯⣟⣼⡯⢛⣡⡶⢛⠡⠘⢠⣸⠟⣉⠆⠁⠀⠁⠀⢠⡿⠡⣿⡄⢣⢻⣇⠘⣕⢤⠈⠙⢾⡱⢎⡷⣚⣥⠻⡜⢦⣙⢦⣋⢎⡳⢌⠳⡰⢌⠣⡄⠀⢀⠠⡼⣸⢥⠳⣜⠡
// ⣟⡾⣽⢯⣟⣷⣻⣞⣭⣟⡾⣞⣯⣽⢻⡾⣝⣷⣞⠇⣠⢾⠗⣘⠀⠀⣠⠞⣡⠔⠃⠀⠀⠀⠀⢀⠞⠀⢸⣏⡇⠘⡆⠻⣶⣘⣦⠙⠄⠀⠙⢯⡲⣙⠦⣏⡝⢮⠜⣦⡙⢮⣑⡋⢶⢱⡩⣓⢬⡓⢎⡳⣱⢣⢞⡱⢎⡐
// ⡿⣽⢯⣟⣾⣳⢯⣞⡷⣯⡽⣞⣧⣟⣻⣼⡿⠱⣃⡞⠃⡡⠖⣁⣴⠟⢁⡜⠁⠀⠀⠀⠀⠀⢀⠎⠀⠀⣼⣻⠁⡀⡇⠀⠈⢳⡽⣷⣄⠑⡈⠀⢻⣬⢛⠴⣊⠇⢯⡰⣙⠦⣣⡙⢦⢣⠳⣌⠶⣙⢮⡱⢣⢏⢎⡱⠂⠀
// ⡿⣽⣛⣞⡳⣯⢟⡾⡽⣞⣽⣳⠾⣭⢷⣟⢠⡷⢋⡤⠋⣠⡾⠛⡵⡺⠉⠀⢀⠀⡀⠀⠀⢁⠎⠀⠀⢰⣿⢃⢠⢳⡇⠀⠀⠀⠹⡘⢿⣦⡈⢆⠀⠹⡣⡝⢢⡙⠦⡱⡘⢎⡵⣘⢣⡝⢲⡡⠞⡌⡖⣩⠓⠎⠐⠀⠀⠀
// ⡟⠄⠁⠀⠱⣭⡻⣝⢷⣛⢶⣫⢟⣵⡿⣨⡟⣡⢏⣠⡾⠋⢠⡞⡽⠁⠀⡠⠁⠀⠀⠀⢠⡟⠀⠀⢰⣿⣧⢎⢎⢸⠃⠀⠀⠀⢀⣿⠾⠿⡷⡀⢠⠀⢹⣽⢦⡙⢦⠱⣙⠮⢴⣉⠶⣘⠧⡜⡱⡘⠴⣁⠊⠀⠀⠀⠀⠀
// ⢦⣀⣀⢠⠖⣧⢻⡝⣮⡝⣮⢳⢫⣾⣱⢟⡸⣥⡾⢋⡄⣠⠏⡰⠀⠀⡰⠁⠀⡠⢀⣴⡟⠀⠌⣠⡟⠁⡼⡀⠈⡜⠀⠀⠀⠀⠀⢸⣄⣀⣹⣌⠄⢇⠘⡿⢮⣳⡌⢳⡡⢞⡡⢎⡱⢃⡞⡰⢥⡙⠆⠄⠀⠀⠀⠀⠀⠀
// ⢧⡳⢎⡷⢻⡜⣣⢟⡲⡝⣎⡳⣻⡗⣋⢮⣽⢯⡴⠋⣴⢋⡖⡀⢀⣼⠁⢀⢈⣠⣾⠯⠀⣠⣼⣿⣶⣿⣿⣿⣤⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⡄⠸⡄⢹⢧⢳⢻⡡⠞⡬⣑⢎⡱⢍⠲⡑⠦⡑⢈⠀⠀⠀⠀⠀⠀⠀
// ⢧⣙⡳⣜⡣⢽⡱⢎⣳⡙⢶⡩⣿⢱⣺⡿⣹⢏⠴⣹⢇⡞⣰⢣⣾⢏⡜⢢⣮⡿⢉⣄⣲⣿⣿⣿⠿⣿⣿⡿⣿⠂⠀⠀⠀⠀⣿⣏⣿⡿⣿⣿⣿⡀⢱⠘⡜⠎⣧⢻⡘⠴⡡⢎⠰⢉⠒⡉⠐⡀⢂⠀⠀⠀⠀⠀⠀⠀
// ⠞⡴⢳⡜⣱⢣⠝⣎⠶⡙⢦⣹⣧⣿⣿⢛⢧⢫⢼⢫⣾⣱⣯⣿⠟⣼⣬⣿⠋⡐⢤⣾⡿⣿⣿⠉⠲⣛⣯⠕⡸⠀⠀⠀⠀⠀⠘⢘⢓⣃⡿⢷⡞⣷⡌⠄⢣⡘⢼⢸⢌⢣⠱⡈⠆⠠⢀⠀⠡⠐⠠⠈⠀⠀⠀⠀⠀⠀
// ⡹⣜⢣⢞⡱⢊⡳⢌⡚⢥⠓⣼⣷⡟⣥⢋⣎⣷⢎⣽⡿⣭⣿⣵⣿⣫⠞⡁⢦⣽⣾⡉⢑⠢⡉⠛⠒⠚⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⢂⠄⠀⠘⣯⢿⣻⡀⢸⡎⢸⢸⢂⡌⢣⠱⡈⡐⠠⠌⢂⠉⡀⠀⠀⠀⠀⠀⠀⠀
// ⡱⣊⠜⠢⠁⠃⠘⠠⠙⠢⢙⣴⡿⣘⢦⣻⡾⣽⣾⣿⣷⠿⣿⡵⠟⡁⢮⣴⣿⣻⡿⣿⣿⣷⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢶⡿⠂⠀⠀⣹⣯⣇⢧⢨⡇⡝⣸⠠⢎⠡⢆⡑⢌⠡⢊⠄⡒⠀⠀⠀⠀⠀⠀⠀⠀
// ⠴⣁⠎⠀⠀⠀⠀⠀⠀⠀⠀⢿⡶⢯⣿⢯⡿⡽⣬⣷⣾⠿⡋⣴⢥⣿⡿⣋⢾⣿⣷⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣷⣻⠸⡇⣿⡷⢃⡜⢨⠑⡢⠘⡄⢣⠁⢎⡐⡁⠐⠀⠀⠀⠀⠀⠀
// ⠢⠅⢎⠀⠀⡀⠀⠀⢀⠀⢄⢺⣏⢷⣟⡺⡴⣿⣿⣟⢣⢧⣟⣵⣿⠏⣴⡏⣿⠀⢻⣿⣹⣿⢣⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⠖⠛⣻⠇⠀⣸⣿⡧⢹⢸⠃⡟⢡⠂⡜⢠⠃⡔⠣⠘⠤⡉⢢⠐⡌⡐⠀⠀⠀⠀⠀⠀
// ⢭⣓⠮⣜⣠⠐⡠⠒⠤⣉⠂⢾⣯⢿⡸⡗⣽⣿⡿⣌⣳⣾⣿⡟⣏⢾⡿⣱⣯⣆⠈⣿⣏⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠁⠀⠀⠰⢡⡿⢀⡏⣞⢸⢁⠆⡱⢈⠆⡱⠈⢆⠩⠄⡑⠤⢁⠐⠠⠁⠀⠀⠀⠀⠀
// ⠀⠈⢁⠒⢾⣿⣿⣿⣶⣤⣍⣂⢿⡷⣯⣹⣿⣿⢳⣼⣟⡾⣿⡼⣼⣿⢣⣿⣷⢩⢷⣼⣿⣼⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⡟⠁⡼⣸⠇⡏⠰⡈⢄⠃⡔⠠⠉⡄⢊⠤⢁⠂⠄⠈⠀⠀⠀⠀⠀⠀⠀
// ⡀⠀⠠⠘⣺⣿⣿⣿⣿⣿⣿⣿⣾⣯⣷⡽⣧⣿⡿⣏⣾⡝⡧⣿⡿⣵⣿⢿⣿⢢⠈⠙⢿⣿⢻⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡞⠀⣼⡰⢃⡼⢀⡑⢈⠄⠊⠄⡁⠒⣀⠢⠐⠠⢈⠀⠂⢀⠐⡈⠐⠠⢀⠀
// ⢿⡶⣦⣤⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣷⣹⣿⢸⡱⣯⣿⣟⢣⣿⣿⡇⠄⠀⠘⣿⣟⣿⣟⠤⢤⣀⡀⠀⠀⠀⠀⠀⠀⠀⣀⡜⢀⣴⠟⣠⠋⣀⠂⡐⠈⠄⠃⠄⡁⠂⠄⢂⠁⡂⠄⠂⠐⠀⢂⠄⡁⠂⠄⠀
// ⢆⡙⠶⢩⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣻⡷⣾⡿⢹⣿⣇⠂⠀⠀⢹⣿⣹⣿⡇⠀⠈⠉⠙⣿⡿⣾⢞⠿⢋⣡⣴⠿⠉⠈⠄⠂⠄⠂⠄⠡⢈⠐⡈⠄⡁⠊⠄⠡⠀⠀⠀⠀⠀⠀⠂⢄⠁⠂⠀
// ⠀⢈⠙⠲⠾⣽⣿⣿⣿⣿⣿⣶⣾⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣾⣧⣿⣿⣧⠖⠀⠀⢿⡿⣿⣿⣀⠀⠀⢰⣿⢟⠵⣋⠔⡯⠞⠁⠄⣈⠐⡈⠐⡈⠐⠈⡀⠂⠐⠀⡐⠀⠡⢈⠀⡁⠀⠀⠀⠀⠀⠌⠠⢈⠐⠀
// ⠀⠀⡀⠀⠀⠀⠘⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣷⣦⣤⣼⣿⣼⣿⣿⡷⣆⢾⡇⣨⡞⢁⠚⣦⠴⢦⢤⠀⠂⠄⠁⢀⠁⠐⠀⠈⠀⠐⠀⠀⡁⠀⠠⠐⠀⠠⠀⠀⠂⠌⠐⠠⠈⠀
// ⠀⠀⠀⠄⠁⠀⠂⠀⠀⠀⢩⠟⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣯⣽⣟⠿⣻⣝⢾⣹⣿⣿⣿⣾⣿⣿⣷⣤⣬⠟⠛⢓⢦⡈⠀⢀⠀⠂⠀⠁⠀⠐⠀⠀⠀⠁⠀⢈⠀⠀⡁⠐⠀⠌⠀⡐⠀
// ⠀⠈⠀⡀⠄⢂⡠⠤⠤⠶⣧⠊⠀⣀⣠⣿⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣿⣻⣿⡿⣟⣿⣷⢷⣫⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠧⣼⢿⣧⣀⠀⣀⣠⣐⣈⠀⠠⠀⠂⠁⠀⠈⠀⠀⢀⠀⠄⠂⠀⠂⢀⠀
// ⠀⠀⠁⠀⣴⡯⣳⠖⠉⣸⣇⣀⣮⣵⡿⣟⢫⡝⢭⠛⡟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⢯⣿⡞⣳⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣖⣬⣿⢿⣿⣿⢿⣝⣦⣄⠀⠀⠐⠀⠀⠈⠀⠀⠀⢀⠐⠀⠀⠀
// ⠀⠔⣚⠉⣟⡰⠁⠀⣠⣽⢛⣿⢟⡧⣛⡬⠃⠜⡀⢣⠘⣆⣶⣽⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⢿⣿⡽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣼⣿⡿⣿⣾⣿⣿⣻⣿⣗⣦⠀⠀⠁⠀⢀⠈⠀⠀⠀⠐⠀
// ⢠⠊⢀⢠⣿⣥⣶⣿⣿⣵⡿⣹⢞⡼⠡⠄⢃⠒⣬⣶⣿⣿⣿⠿⡛⢯⡹⢏⣛⠻⢟⣿⣿⣿⣿⣯⣟⣿⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣳⣼⣿⣿⣟⣵⣿⣿⣟⣼⣿⣿⢣⣿⣧⡀⠀⠄⠀⠀⢀⠀⠁⠀⠀
// ⠃⣴⢯⡾⠋⠉⠉⢀⣾⡟⣼⡛⢎⡰⢁⣎⣶⣿⣿⠿⠛⡉⠄⠣⡙⢦⡙⡎⢴⣉⣶⡼⡾⢿⢿⣟⣾⣽⣯⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⣿⣿⣿⣿⣾⣿⣿⣫⣿⣿⣿⣿⣆⠀⠀⠈⠀⠀⠀⠐⠀
// ⣿⠷⠛⢿⠷⠶⠞⣿⡻⣼⠋⡘⣠⣵⣿⣿⠟⡛⢁⠂⠡⠐⡈⣴⢜⣶⣽⠿⣟⢿⣹⢚⡵⣋⣞⣻⣷⣯⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣽⣿⣿⣿⣷⣿⣿⣿⢿⣿⣿⣧⠀⠀⠐⠀⠁⠀⠀
// ⠇⠀⣰⡟⠀⢀⡾⢧⠽⣁⣶⣿⣿⠿⠋⠆⠑⡀⠁⠈⣤⡵⠻⡙⠋⡁⠎⡙⣌⣶⢥⣻⢾⣛⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣵⣿⣿⣿⣿⣶⣮⣝⡛⠶⣤⣀⠀⠀⠂⠀
// ⣶⠟⠋⠀⢠⡟⣱⣋⣶⣿⣿⢫⠱⢈⠡⠈⡀⠄⣬⠟⠃⠌⡁⢀⣂⣥⢾⣿⣹⣾⣾⣿⣿⣿⣿⡿⢍⡿⢹⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣿⣿⣿⣿⣿⣷⣿⣽⣓⡶⣄
// ⠁⠀⠀⠀⣾⡸⣧⣿⣿⣛⢦⠣⠌⡀⠆⣡⡴⠛⠁⠠⠁⣂⣴⣿⣏⣾⣿⣿⣿⣿⡿⣿⢿⣿⡿⡜⣿⠁⠂⢿⣿⣿⡛⠿⢿⣿⣿⣿⣿⣿⣿⢗⠈⠛⢿⣿⣿⣿⣿⣿⣿⠏⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⢠⣿⣽⢿⡝⡶⣭⢒⡱⢂⡱⠌⠡⢀⠁⢂⣴⣿⣫⣷⣿⣿⣻⣿⣿⣿⣿⣿⣿⣿⣿⢳⣸⡷⠀⠀⠘⣿⣧⣉⠂⢈⣁⠀⡈⢆⣿⡸⠈⠀⠀⠀⠉⠻⢿⣻⣿⣮⠻⡄⢻⣿⣟⢿⣛⣯⢻⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⢸⡿⣹⢮⡝⡳⢜⡢⢕⠣⡐⢌⠡⢂⣜⣾⣿⣽⣿⣿⣿⣿⡿⢟⣿⣿⣿⣷⣿⣾⡿⡇⢻⠃⠀⠀⠀⣿⠻⠿⠷⠶⠬⠯⠿⣿⠋⣇⠀⠀⠀⠀⠀⠀⠀⠈⠳⢿⣳⣌⢦⣿⣿⡲⣭⠞⣿⣿⣿⣿⣿⣽⡌⠙⠻
// ⠀⠀⠀⣾⢳⡝⡞⡜⣱⢍⡚⣌⠢⡱⢌⢣⣻⣟⣾⣿⣿⣿⢿⣽⣶⣿⣛⣿⣿⣿⣿⣳⢯⣷⡩⢸⡆⠀⠀⢠⡿⣧⣅⣂⡄⢡⣔⣠⣶⢴⠈⠓⡀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⣳⣽⣟⣿⣲⢛⣦⢻⣿⣿⣿⣿⣿⡀⠀
// ⠀⠀⢰⢣⡟⣼⢱⣹⠗⣎⠱⣂⢧⡱⢮⣹⣿⣿⣿⣿⣿⣯⣿⡟⢣⢦⠹⢾⣿⣿⣿⣽⣳⢚⣷⣼⠁⠀⠀⣼⠱⡈⠍⠛⠿⠿⠿⣿⣷⢚⣆⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣷⣯⣶⣿⣞⣿⣿⣿⣿⣣⠀
// ⠀⢀⣏⡳⣝⢎⡿⣍⠞⡤⢳⡘⢦⣽⢯⣿⣿⣿⣿⣿⣿⣿⣿⣯⢇⢮⣙⠦⣟⣿⣿⣿⣮⡝⡼⣏⠀⠀⣰⠷⣥⣘⠀⠃⠄⡐⠂⡔⣸⢸⠀⠉⠢⠄⠐⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⣿⣿⣟⢿⣛⣿⣿⣿⣿⣧⠇
// ⠀⡲⣬⢳⣽⣞⠳⣜⡚⠴⢣⣙⡾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⢶⣩⡞⣽⢾⣿⣿⣿⣞⡱⡽⡆⢠⣿⣮⣐⣉⠛⠛⠺⠶⠷⠾⣶⢺⠀⠠⡾⡦⡀⠀⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣌⣻⣧⣛⢯⣿⣿⣿⣿⡆
// ⡘⡵⣭⣳⢏⡮⢳⢬⡙⣭⣳⢟⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢶⡹⣎⢿⣽⣿⣿⣿⣿⣳⣿⣾⣿⣿⣿⣿⣿⣿⣶⣶⣿⣿⣿⢻⠀⠀⠣⣿⠟⡄⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣧⢏⣟⣳⢿⣿⣿⡽
// ⣸⢳⣯⣛⢮⠵⣋⠶⣙⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⢷⡹⣎⣷⣟⣻⣯⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣸⠀⠀⠀⠀⢐⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣺⣿⣟⡾⣭⣛⢺⡽⣿⣿
// ⡞⣯⡳⡝⣎⠳⣍⢞⣽⣳⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠉⠁⠆⣼⣿⣯⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡯⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣳⣝⢮⢇⡿⣽⣿
// ⡽⣣⢏⡕⣊⢗⢮⡿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢃⠠⠀⠀⠁⢌⣿⣿⣿⣿⣿⣿⣾⣿⣽⣯⣿⣽⣿⣧⠟⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀⠀⠀⠀⠀⣀⡀⣾⣿⣿⣿⣷⣚⣯⣞⠼⣳⣿
// ⡳⢇⡞⣌⡳⢮⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣷⠈⠀⣠⡾⣯⢾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢄⠀⠀⠀⠀⠀⢠⣿⡄⠀⠀⠀⠀⠀⠀⠀⢉⣿⣿⣿⣿⣿⠿⠿⠾⢞⡻⣙⠦
// ⡝⣎⠼⣎⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣞⣿⣿⣏⢿⣄⡾⢿⣽⢇⣿⣿⣷⣯⣿⡿⢿⣿⣿⣿⣿⣿⣿⣿⡿⣜⠀⠀⠀⢀⣴⠟⠀⢷⣤⠀⡀⢀⡀⣤⡴⠋⠙⠳⣯⡿⣿⣿⢖⡱⣊⠴⣩⡾
// ⡾⣼⢿⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⢿⣿⡆⣿⣿⣿⡿⣾⣿⣿⣿⣿⣿⣿⣿⣶⣶⣧⣿⣿⣷⣧⣿⢿⠀⢠⣶⠿⠃⠆⠀⠘⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠛⠻⠿⢷⣧⣿⠾⠟⠀
// ⡼⣱⣾⣿⣽⣿⣿⢿⣯⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢲⢿⣫⢿⣾⣖⣻⣿⢳⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⡿⢞⠫⠁⠀⠁⠀⠀⠀⣿⣿⣿⡿⣿⣿⣼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⡵⣟⣿⣿⣿⣿⢯⣿⣻⣾⣿⣿⣿⣿⡿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣭⢺⠥⣏⢿⣿⣶⣿⢿⣗⣻⣷⣿⢉⠛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⡿⣽⣿⣽⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⣽⣿⣿⣟⣿⡿⣯⣿⣿⣿⣿⣿⡿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⢯⣿⣌⡳⢭⢿⣿⣚⢿⡹⣿⡋⠄⠌⠐⠠⢀⠆⢭⡙⢏⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⢿⡽⣿⢾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⣿⣻⢾⣽⣻⣟⣿⣿⣿⣿⢯⣿⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣼⣣⣏⣿⢿⣞⡿⣴⡉⠆⡈⠄⢡⠈⠞⣤⢋⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣯⣟⣿⣮⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⣿⡷⣯⣟⣾⣳⣿⣿⣿⢿⣽⣟⣷⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡍⡉⠏⠻⠜⡸⢛⠿⣿⣴⣀⢎⠰⣈⠞⣴⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣳⢯⣿⡧⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⡿⣽⡳⣽⣺⣽⣷⣿⢿⣻⢷⣻⢾⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠐⠀⠀⠀⠀⠄⠉⠘⠌⢛⠿⠾⡷⠿⠾⠋⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⢯⡟⣾⡗⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⣟⢧⡟⣶⢯⣟⣯⡿⣯⢯⢷⣯⢿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠁⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⢯⣝⣿⣿⡔⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⣿⢞⣧⢻⣼⣻⡽⣏⠿⣜⣻⢾⣽⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣟⣯⢞⡾⣿⢻⠀⠀⠀⠀⣀⠀⠀⠀⢀⡰⣞⣯
// ⣿⢺⡬⣓⢮⡳⣝⢮⡻⣽⡽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣻⠾⣭⢞⣿⣏⡇⠀⠀⣿⣽⣶⡠⣄⢾⣽⣟⠃
// ⣏⠷⡸⢥⢳⣙⢮⡳⣽⣳⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠄⣿⣿⣿⣿⣿⣻⣽⣻⡜⣯⣿⣇⡇⠀⠈⣷⣿⣿⣷⣯⣿⡽⢊⠀
// ⣏⢞⡱⣋⡞⣬⢳⣽⣳⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠏⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣐⠀⢘⣿⣿⣿⣿⣻⣽⣳⢧⣛⠶⣿⣿⢢⠀⡰⢯⣿⣿⢿⣽⣳⢿⣥⠂
// ⣏⠮⣕⣣⡝⢮⣟⣾⣽⣿⣿⣿⣿⣿⣿⣿⣿⠏⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣲⡏⠀⢘⣿⣿⣿⣿⢯⡿⣽⡳⣭⢻⣽⣯⢹⣾⣽⣿⣿⣯⡟⣶⣹⣿⣾⣟
// ⣎⠿⡴⣓⣾⢻⣾⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⡿⠀⠀⢘⣿⣿⣿⣿⢯⣟⡷⡽⣎⣟⣾⣷⢚⣿⣿⣿⣿⣿⣽⣾⣷⣿⣻⣾
// ⣎⢯⣵⣻⣞⣿⣿⣿⣿⣿⣿⣿⣿⡿⢃⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⠒⠇⠀⠀⢈⣿⣿⣿⣟⡿⣞⡽⣳⡝⣮⢿⣿⣎⣿⣿⣿⣿⣿⣿⢿⣾⠳⡝⢺
// ⣮⢷⣯⣷⣿⣿⣿⣿⣿⣿⣿⣿⠟⡀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠌⠀⠀⠀⢰⣿⣿⣿⡿⣽⢞⣳⢧⡻⣼⣻⣿⠴⣿⣿⣿⣿⣿⣿⣟⢧⢃⠈⢄
// ⣿⣾⣷⣿⣿⣿⣿⣿⣿⣿⡿⠋⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠌⡀⠀⠀⠀⣸⣿⣿⣿⣟⣧⢟⡧⢯⣳⢷⣻⣿⣞⣿⣿⣿⣿⣿⣿⡾⣏⣦⣳⢮
// ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⢂⠄⡁⠂⠄⣿⣿⣿⣿⢿⡜⣯⢞⣯⠿⣽⣻⣿⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠰⢈⠔⡂⢅⠊⣼⣿⣿⣿⣿⣻⢼⣣⣟⣾⣻⡽⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡐⢄⠊⠴⡈⠴⣈⢒⣿⣿⣿⣿⡿⣝⢮⡳⢾⣱⣯⣟⣿⢃⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠢⡐⠌⡜⢢⢉⠲⢄⢮⣿⣿⣿⣿⢿⡹⢮⡽⢯⣷⣻⣾⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠂⢆⠱⡘⢄⢣⠘⣂⠎⣼⣿⣿⣿⣟⡯⣝⣳⡟⣿⣞⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡁⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⡌⠢⡑⠌⡌⢢⢉⠤⢩⣿⣿⣿⣿⢯⣳⠽⡾⣽⣳⣯⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⢁⠰⠁⢆⠱⠈⡄⠂⠄⢻⣿⣿⣿⣯⡗⣯⢿⣽⣳⣿⣽⡿⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠐⡀⢂⠍⡠⢂⠁⠀⠐⠈⡸⣿⣿⣿⢮⡽⣞⡿⣾⣽⣻⣿⣃⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠂⠤⠁⠎⡐⠄⠀⠀⠀⠀⠀⡑⢼⣿⣯⢟⡽⣯⣟⣷⣿⣿⡙⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⡠⢊⠔⡩⠐⠀⠀⠀⠀⠀⠀⠀⠐⡸⣿⣞⣯⣟⡷⣿⣾⣿⣿⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⢈⠐⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⠀⠀⠀⠀⣄⢣⠰⡁⠎⠄⠁⠀⠀⠀⠀⠀⠀⠀⠠⠁⢻⣞⡷⣯⣟⣷⣿⣏⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠄⡊⠄⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣇⠀⠀⢤⣳⡾⢇⢣⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢡⠘⣿⣽⣳⣿⣿⣯⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠌⡐⠠⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡤⣉⣾⢏⣱⢎⠡⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⢿⣳⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⢂⠥⠁⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣷⣿⡷⡞⡃⠎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⡇⢸⣿⣿⣯⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⡌⠄⢃⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡟⡜⡡⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⡇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣇⡘⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣟⠰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢁⠂⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣷⠠⡁⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡁⠀⠀⢸⡏⠆⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⢌⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⡅⡐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⡁⠀⢘⣇⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠌⡨⢄⡿⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⡇⠜⡀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠁⡀⠀⢈⡧⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣴⢾⡛⡽⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣦⡡⠐⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠂⠄⡀⠨⣷⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣻⡭⣭⠱⣜⣦⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⡿⣷⢶⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠌⡐⠀⢰⣯⣧⣤⣄⣄⣠⣠⣤⣤⣶⣿⣿⣿⣿⣷⣿⣿⣿⡿⣿⣽⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣷⣯⣞⡼⣩⢿⡟⠲⠶⠤⢤⣄⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⢈⡐⠤⠁⣾⣿⣿⣿⣾⣷⣯⣷⣶⣷⣾⡿⢿⣿⣻⢿⣽⣧⣿⣿⣿⣿⠋⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⠿⣿⣷⣷⣾⣧⡑⠌⡐⠠⠀⢀⠉⠙⣻⠟⡛⢳⠲⣖⠶⠾⢾⢳⠷⡾⢶⡿⣿⣿⣿⣿⣿⣿⣿⣯⣿⣾⣶⣿⣿⡾⢿⠿⢿⡻⢟⡽⣺⢼⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣷⣮⣝⣻⣟⡿⣿⣷⣶⣧⣤⣄⣂⣤⣨⢑⣣⠳⣜⣏⡻⣬⢳⣫⡝⣧⢽⣿⣿⣿⢻⣟⢛⡹⠩⠍⠩⢁⠒⠤⢑⠊⡜⢢⡙⢮⡱⢧⣻⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⡿⣟⡿⣿⢿⣿⣿⣷⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣷⣿⣷⣿⣿⣿⣿⣿⣿⢾⡹⣏⠲⡄⠣⠌⣁⠊⢌⠢⡁⠞⣠⠣⡜⢣⡝⢮⣹⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣽⢻⣜⢯⣿⡐⠦⠡⢉⠉⠉⠉⠋⠛⠛⢛⠛⡟⡻⢟⡿⢿⠿⣟⡿⣻⢽⣿⣿⣯⢟⣿⠳⣌⠱⡈⠤⡘⢄⠣⡘⢔⡡⢒⡍⣲⡙⢮⣹⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣞⣟⡮⣗⣿⣍⠲⡁⢆⠐⡀⠀⢀⠂⠡⡈⢆⠱⡑⠮⣜⣣⢟⡼⣳⡝⣾⣿⣿⣯⣛⣿⠳⡌⢆⡑⢢⠑⡌⡒⡡⢎⠰⢣⠜⡴⣩⢓⢾⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⡿⣼⡝⡷⢾⣧⢣⡑⠌⡐⠀⠌⢀⠈⠤⡑⢌⠒⣍⠺⢴⣩⢞⡵⣣⡟⣾⣿⣿⣳⡝⣾⡝⡜⡄⠎⣄⢃⡒⣡⠱⣈⢇⠣⢞⣡⢳⣋⡞⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣷⡻⣽⣛⢶⣣⠜⢢⠑⣈⠐⡀⠎⠰⣈⢌⠚⡤⢛⠦⣝⢮⡝⣧⣛⣿⣿⣿⢷⡻⡼⡟⡴⣈⠧⣐⠊⡔⢢⠱⡌⢎⡹⢎⡖⢯⡼⡜⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⣿⣿⣿⣿⣿⣿⣷⣟⣧⢟⣳⢮⡙⢆⠱⡀⠆⠐⡈⠑⡠⢊⠱⣌⡙⢮⣙⢮⡽⣲⢏⣿⣿⡿⣯⢷⡹⣿⠴⣡⠒⠥⠚⡌⠥⡓⡜⡬⣓⢭⣚⢧⡳⡅⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠐⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠂⢀⠀⠁⠀⠂⠀⠐⠀⠀⠂⠀⠐⠀⠠⠀⠀⠄⠀⠠⠀⠀⠄⠀⢀⠀⢀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⠀⠳⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠠⠐⠀⡀⠠⠀⠁⠀⠌⠀⠄⠁⠠⠐⠀⠠⠀⠄⠂⠀⠄⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣁⣤⣴⠶⠓⠛⠛⠉⠛⠓⠒⠯⠭⣉⡉⠓⠲⠦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠠⠀⠀⠀⠀⠄⠀⠀
// ⠀⠀⡀⠀⠀⠄⠂⠀⡀⠠⠀⠀⠄⠀⠠⠀⠀⡀⠀⠄⠀⠐⠀⠀⡀⠈⠀⠀⠂⠈⢀⣤⠾⠛⠫⠘⠀⣀⡴⠂⠀⣠⠞⢀⡶⢃⠀⠀⡉⠳⡄⢀⡀⠈⠙⠲⢤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⢀⠀⠐⠀⢀⠠⠀⠀⢀⠠⠀⠀⠐⠀⠀⠄⠀⢀⠀⠄⠂⠀⢀⠀⠀⠐⠀⣠⣴⡿⠣⠉⠀⠀⣠⡾⠉⠀⢀⠜⢁⡴⠋⢠⠇⠀⠀⣧⠀⠘⢦⠈⠳⣄⢀⠀⠉⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⡀⠄⠂⠀⠀⢀⠐⠀⠀⢀⠈⠀⠀⠂⠀⠠⠀⠀⠀⡀⠄⠀⠀⠀⣢⣞⣿⠫⠀⡀⠀⣠⣾⠟⠀⠀⢠⠋⣠⢏⠄⢀⡏⠀⡎⠀⢹⠀⠀⠈⣇⠀⠈⠢⠈⠲⡄⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⢀⠀⠀⡀⠐⠈⠀⠀⠀⠂⠀⢀⠀⠁⠀⠐⠀⢀⠀⠁⠀⠀⢀⢈⡾⣭⠟⡁⠀⡔⠀⡴⡿⠃⠀⠀⠀⣧⣰⢫⠂⠀⣼⠀⢸⠃⠀⢸⡄⠀⠀⡼⡄⠀⠀⠆⠀⡈⢢⡀⠈⢣⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⢀⣀⠀
// ⠀⠀⡀⠄⠀⠀⠄⠐⠈⠀⢀⠐⠀⠀⠠⠈⠀⢀⠀⠀⡀⠂⠈⣰⠯⣵⠏⡐⠀⡜⠀⣼⡟⣡⠂⠀⠀⣼⣱⡟⠆⠀⢀⡏⢰⣸⠀⠀⠀⣇⠀⢈⡇⢷⠀⠀⠀⠀⢳⡀⠘⢦⠀⠹⡄⠀⠀⢀⣤⠴⠖⠛⠉⠁⠀⠀⠀⠀
// ⠀⠀⠀⢀⠀⠂⠀⡀⠄⠐⠀⠀⠀⠂⠀⠀⠄⠀⠀⠄⠀⠀⣴⢟⡾⠃⡞⠀⡘⠀⢸⡟⣠⠃⠀⢀⣾⢧⣿⠛⠀⣴⢸⠇⠸⡇⠀⠀⠀⢸⡀⠀⣧⢸⡆⠀⠀⠀⠀⣇⠀⠀⢳⠀⠹⣤⠶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠁⠀⢀⠠⠀⠀⠀⡀⠄⠈⠀⢀⠈⠀⢀⠀⠂⠀⢀⣾⠯⣾⠃⣼⠁⠠⠁⠀⣿⣰⠃⠀⠀⣼⣿⡟⣟⣀⣀⡇⢸⡃⠀⢿⠀⢠⠆⠀⢧⠀⣿⣰⠇⠀⠀⠀⠀⢸⠀⠀⠀⢧⢠⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠈⠀⠀⠀⡀⠀⠁⠀⠀⡀⠐⠀⠀⠠⠀⠀⠠⣰⣿⡟⣸⠇⢠⡇⠀⠄⣀⣼⣧⡿⠖⠞⢻⣟⡟⠙⡏⠁⢸⡇⠘⡇⠀⠈⢧⢸⡄⠀⠘⣿⠛⣿⡀⠀⠀⠀⠀⠸⡆⠀⠀⠘⣾⡵⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠁⢀⠈⠀⠀⢀⠐⠀⠀⢀⠀⠄⠂⠀⠀⠐⣼⣿⡟⢠⡟⠀⢸⠃⠀⠄⠉⣼⣿⠁⢀⠀⣼⣿⠁⠈⡇⠀⣸⣇⡀⢿⡀⢀⠈⢻⡄⠀⠀⠸⣿⣿⣇⡀⠀⠀⠀⠀⡇⠀⠀⠀⢣⡇⢿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠄⠀⠀⠄⠈⠀⠀⢀⠈⠀⠀⠀⢀⠀⢁⣾⡟⡾⠁⣾⠃⡈⢼⣻⠀⠂⠀⣿⣿⠀⠀⢠⣿⣿⠀⠀⣿⠀⣿⣿⡇⠸⣷⠘⣧⡄⠙⢦⡀⢐⡏⠻⣟⠉⠓⠦⣄⠀⡇⠀⠀⠀⠈⣧⠸⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⢀⠠⠀⠂⠀⠀⠠⠀⠁⠀⠀⣼⡟⢸⠇⢸⡿⡄⠐⣸⢹⡄⠡⢰⡿⣿⡄⠂⢸⠹⣿⠀⠀⢻⡆⡿⣿⣷⢤⡘⣷⣜⣿⣷⡶⢽⣶⣧⡤⢹⡗⠄⠀⠈⢹⡇⠀⠁⠀⠀⢿⠀⡿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠂⠀⠀⠠⠐⣸⣿⢁⡿⠈⣿⡗⣯⠀⢼⣿⣧⠐⢸⣇⣸⣿⣾⣿⣤⣿⣆⠀⠈⣿⣽⡘⢿⣽⣧⠀⠙⢿⠛⣷⣄⠠⡇⠀⢸⡷⠀⠀⠀⣼⡏⠀⠈⠀⠀⢸⡀⢿⢹⡆⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⢰⣿⠃⣼⣹⠖⣿⢹⣿⠀⠸⣿⣿⣿⣿⡿⡿⢿⣟⢿⣿⣿⣿⣇⠀⠘⢎⠳⣈⣿⣿⣷⡀⢸⡀⠈⢿⣦⣇⠀⠀⣿⠀⠀⢠⣿⠇⠀⠨⠀⠀⢸⡅⢸⣈⣷⠀⢀⠀⡀⢀⠠⢀⠂
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⢸⣿⢠⣟⣿⣀⢻⣿⣿⡀⢁⢻⣿⠈⠻⣇⠀⢿⣿⣿⣹⣏⣿⠙⠃⠀⠀⠀⠈⠙⢿⢿⣟⡮⣧⣴⣿⣿⣿⣿⣾⣿⡄⢀⣾⣿⠀⠀⢸⠀⠀⣾⠁⢸⡇⣿⡇⢂⢂⡡⠆⠲⣄⠂
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢸⣿⢸⣿⣿⡆⣻⣾⣿⣧⢂⠸⣿⡀⠀⠈⢄⠈⠻⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⣽⣯⡽⣿⡿⢿⢻⣿⡟⣿⡇⡀⠀⢸⠀⣰⢿⠂⢸⡇⢿⡇⠈⠀⠀⠀⠥⡘⣇
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠻⣿⣿⣿⣱⡿⣿⣿⣿⣎⣆⢻⣧⠀⠀⠀⠉⠓⠒⠒⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣷⣿⣷⠆⠘⣽⢟⡿⡽⠀⠀⣾⣸⢿⣼⠀⢸⡇⢸⡇⠀⠀⠀⠀⢢⠑⢼
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣎⡇⣿⣿⣿⣾⣹⣎⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠖⠒⢄⠀⠀⠀⠀⠀⠢⣍⣛⣛⡁⠀⠈⠁⣸⣿⠃⢀⣸⢯⣿⢸⠍⠀⣾⠇⣼⡇⠀⠀⢠⠘⠤⡉⢆
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⣸⣿⣿⣿⣿⣿⣇⢻⣿⣿⣾⣿⣏⢷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠈⠇⠀⠀⡨⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⠇⡐⢠⡿⣼⠇⣻⢀⣤⣿⢠⣿⠀⠀⠐⢢⡉⠖⣡⢂
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣀⣀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢿⡦⠭⠓⠂⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⢧⡜⣤⣿⣷⢿⢀⡟⣼⣿⣏⣾⠃⠀⢠⠉⢦⡘⡘⠴⣈
// ⠀⠀⠀⠀⠀⠀⢀⣤⠶⠟⠛⢉⣩⣽⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠿⣿⡣⣟⣼⣯⣿⣏⣠⣿⣿⣿⣿⠟⠁⠀⡐⢂⡍⠲⣌⢱⠣⡜
// ⠀⠀⠀⠀⢀⡶⠋⠁⢀⣤⢞⡿⢟⡿⣻⡽⢛⠉⢉⡛⠻⢿⣿⣿⣿⠏⠙⠿⣷⣆⠀⠀⠀⠀⠀⠀⠾⣟⠋⠓⠒⠲⠦⣤⣀⡀⠀⠀⠀⠀⠀⠘⢉⣡⣾⣧⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠤⡑⢬⡐⢣⡜⢪⡱⢜
// ⠀⠀⠀⢠⡟⠁⢀⡴⣫⠞⢉⣴⣫⡾⠉⢀⣼⠏⢋⠀⠀⠀⠘⣿⠻⡄⠀⠀⠈⠙⢧⡀⠀⠀⠀⠀⠀⠈⠉⠒⠒⠶⠖⠚⠋⠁⠀⠀⠀⠀⠀⠀⠉⢉⣽⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣅⠀⠀⡜⢠⡑⠦⡘⡵⢊⢧⡙⣬
// ⠀⠀⠀⢸⠀⣴⢋⡴⠃⣰⢏⡼⠋⠄⢠⡞⠁⠌⠀⠄⢠⠀⠀⣿⡆⠹⡄⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡴⠟⣿⣭⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣀⣐⡄⢣⠘⢦⡹⡜⣭⢒⡹⡼
// ⠀⠀⠀⠈⡾⢁⠎⠀⣼⡿⢋⡴⠃⢠⡟⠀⠀⠀⣰⠀⢸⠠⠀⡇⢳⠀⢻⠀⠀⠀⠀⠀⢸⣿⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠶⠛⠉⠀⣸⡟⣻⡿⠛⣿⠋⢈⠛⢏⠀⠈⠳⣬⡙⠯⣓⠿⣆⣳⠱⢦⣋⠶⠃
// ⠀⠀⠀⢸⢃⡟⠀⣼⠳⢡⡞⠁⢠⡟⠀⠀⠀⢠⡿⠀⠼⡐⣶⠃⢸⠧⣼⠃⠀⠀⠀⠀⢸⣿⣿⣿⣷⣄⡀⠀⠀⣀⣀⣤⣴⣶⣿⣿⠃⠀⠀⠀⢰⣿⢟⣡⡟⢠⡿⠀⡊⢱⠈⠙⢦⣄⠈⢿⣳⣌⠳⣬⡛⢿⣢⣽⠁⠀
// ⠀⠀⠀⢸⢸⡇⢰⠏⣰⡿⠀⢀⣿⠁⠀⠀⢠⣿⠇⠀⢃⣼⡏⠀⣾⢡⡏⠀⠀⠀⠘⠀⠨⣷⣻⣿⡳⣟⡿⣻⢟⡻⣽⢿⣿⣿⠛⢹⠀⠀⠀⠀⣿⢋⣼⡟⠀⢸⠇⠀⠀⢰⡆⠀⠀⢻⣧⠈⢷⡹⣦⡈⢿⣦⡙⢇⠀⠀
// ⠀⠀⠀⠸⣿⡆⡟⢠⣿⠁⠀⣸⡇⠀⠀⠀⣾⠝⠀⠘⣰⠏⠀⢰⣧⡞⠀⠀⠀⠀⠀⠀⠀⣿⠡⢻⣿⡼⣳⢏⣯⢳⣭⠟⠁⠀⠈⢺⠀⠀⠀⣼⡏⣼⣿⢀⠀⣻⠀⢸⠀⠘⡇⢀⠀⠈⢾⡧⡈⢷⣹⣧⠸⡿⠉⢻⡳⡄
// ⠀⠀⠀⠀⠙⣿⡇⣾⡇⡀⠀⣿⠀⠀⠀⣸⠃⠀⠜⣸⡏⠀⢠⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⣯⠱⠀⠘⣻⣵⣫⣾⡿⠃⠀⠀⠀⠀⢸⠀⠀⢰⣿⡡⣿⣿⠀⢂⣿⠀⢸⠀⠀⠇⢸⡄⠀⠈⢿⣱⠈⢿⣿⢀⡇⠀⠀⠱⡄
// ⠀⠀⠀⠀⣠⣿⢰⣿⢰⡇⢸⡏⠀⠀⢰⡇⠀⠀⢰⠋⡇⢠⣯⠏⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⢢⡕⠃⠀⠀⣡⠎⠀⠀⠀⠀⠀⠀⢸⠀⠀⣾⢻⣿⣿⣿⠀⣸⢸⠀⣿⠀⠀⠈⢸⡇⢠⡀⠘⣿⣇⠸⡯⡼⠃⠀⠀⠀⢻
// ⠀⠀⠀⢰⡿⣿⣼⡇⣿⡇⣸⡇⠀⠀⣾⠃⣀⢸⡏⠀⢧⢿⠏⠀⠀⠀⠀⠀⠀⠀⢀⣤⠞⠐⡀⢇⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠈⢧⣼⣇⠚⣿⣯⣿⣇⢾⡘⢿⣿⡇⠀⠀⠀⣿⠘⡇⠀⢹⣿⡤⢿⠁⠀⠀⠀⠀⠈
// ⠀⠀⠀⣿⠁⣿⣿⡱⢏⡇⣽⡇⠀⠀⣿⢰⡇⣿⠁⠀⢸⡾⠀⠀⠀⠀⠀⢀⡤⠖⢛⣿⡖⠐⠀⠸⡄⠀⠀⠀⠀⠀⢠⡏⠀⠀⠀⠀⣸⡏⠛⠾⣽⣿⣿⣿⣿⡇⠈⣿⣿⡀⠀⠀⢻⡄⣷⠀⢘⡿⣿⠈⡇⠀⠀⠀⠀⠀
// ⠀⠀⣸⡇⠀⢹⣿⣱⢋⡇⢿⣇⠠⠀⣿⡿⣾⡟⠀⢀⠀⣹⣀⣠⡤⠶⠋⢡⠤⠂⠀⢸⣧⠀⠀⠀⣧⠀⠀⠀⠀⢀⡏⠃⠀⠀⠀⢀⣿⠁⠀⠀⠀⠉⠛⠿⢿⣿⣤⣿⣽⣷⣀⡀⢸⠅⣿⠀⢸⡀⢸⡀⣷⠀⠀⠀⠀⢀
// ⠀⠀⣿⠀⠀⠀⢻⣧⢋⣧⢹⣿⣸⣆⣿⣥⡟⠋⠉⠉⠉⠀⠐⢲⣤⣦⣅⣑⣲⣤⣀⠀⣿⡆⠀⠀⠙⠂⠀⠀⠀⡞⠀⠀⠀⠀⠀⣼⣏⣤⣭⡕⠒⠒⠊⠀⠁⠀⠀⠀⢠⠀⠈⠉⠙⠛⢻⣥⣸⡇⢸⡇⢹⠀⠀⠀⢀⡞
// ⠀⢀⡇⠀⠀⠀⠘⣯⣟⣹⡼⣿⣽⠟⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠛⠛⠛⠻⠿⠿⣿⠧⠿⠟⠻⢄⠀⠀⣠⠤⠛⠛⠀⢀⣿⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⢧⢨⡇⣼⠀⠀⠠⠋⠀
// ⠀⢸⡇⠀⠀⠀⠀⠹⣶⣣⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣇⡏⠀⠀⠀⠀⠀
// ⠀⠸⡇⠀⠀⠀⠀⠀⢈⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢿⣆⡀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡁⠀⠀⠀⠀⠀
// ⠀⠀⢿⠀⠀⠀⠀⢀⡞⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠨⢿⡗⠀⠀⠀⠀⠀⠀⠀⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀
// ⠀⠀⠘⣆⠀⠀⠀⣼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡇⠀⠀⠀⠀⠀⠀⣾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡇⠀⠀⠀⠀
// ⠀⠀⠀⠘⣄⠀⠀⣿⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣧⡀⠀⠀⠀⠀⣼⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀
// ⠀⠀⠀⠀⠘⢷⣄⣿⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣧⠀⠀⠀⢰⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣹⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠈⠙⣿⡀⢂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣿⣷⣶⣶⣿⣅⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡇⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⢻⢆⠀⢂⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣭⣭⣭⣭⣿⣿⣍⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣧⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣸⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⢸⢎⡰⠀⠄⠀⠀⠀⠀⠀⡐⢈⣼⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣭⣭⣿⣿⣿⣿⡃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠹⣼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⡀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠘⣧⢒⠡⠀⠄⠀⠀⠄⠡⢀⡼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⠉⠉⠉⠉⠉⢹⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠙⣄⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⢀⣿⡌⢣⠈⠄⠡⠈⠄⣁⡾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢐⣿⣿⣿⣦⣤⣤⣤⣤⣼⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢇⠀⠀⠀⠀⠀⠀⠀⠀⣿⣀⠈⢆⠀
// ⠀⠀⠀⠀⠀⢀⡴⢋⣹⣎⠱⢊⠠⠁⠌⡐⣼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣆⠀⠀⠀⠀⠀⠀⢀⡇⠈⠣⡀⠀
// ⠀⠀⠀⠀⢠⣾⡶⠛⢡⣯⡅⠣⠄⡑⠠⣼⠃⠀⠀⠀⠀⢀⣤⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣷⣿⣿⣿⣿⣿⣟⣿⣷⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣹⣲⢦⡀⠀⠀⠀⠸⡆⠀⠀⠀⠀⠀⢸⣷⠄⠀⣷⡀
// ⠀⠀⠀⠀⣾⡏⠀⠀⣾⢹⣎⡑⢆⠐⢠⡏⠀⠀⠀⠀⢰⢻⣿⣭⡗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠿⣿⣿⡿⠿⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⢉⣧⣾⣏⠹⡄⠀⠀⠀⢻⠀⠀⠀⠀⠀⢸⡿⠀⠀⡞⢷
// ⠀⠀⠀⠀⢿⣷⣀⠀⣷⡾⣷⡈⠦⠈⢼⠃⠀⠀⠀⠀⠸⣌⠙⠖⣅⡤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣌⣉⢹⣼⠞⠁⠀⠀⠀⣼⡆⠀⠀⠀⠀⢸⡅⠀⣰⢃⡞
// ⠀⠀⠀⠀⠀⠙⠛⠉⠺⣇⣿⢌⡓⢈⢺⡄⠀⠀⠀⠀⠀⠈⠙⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠁⠀⠀⠀⠀⠀⣿⠇⠀⠀⠀⠀⢸⡉⠛⠛⠉⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣹⢦⢹⠀⢺⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⠀⠀⠀⠀⠀⢺⡄⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⢎⡰⠁⢿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣟⣧⡜⣷⣌⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠇⠀⠀⠀⠀⠀⢽⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣟⢢⠱⡈⠌⢿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣿⠟⠋⠈⠓⢮⣝⣳⣤⣁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠋⠀⠀⠀⠀⠀⠀⣹⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⢢⠝⡐⠌⡄⡙⢳⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣿⠿⠋⠁⠀⠀⠸⠀⠀⠉⠓⠾⣝⣳⢦⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⠟⠁⠀⠀⠀⠀⠀⠀⠀⣼⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡜⢬⢣⠘⠰⢠⠁⣿⢛⠳⡶⣤⣤⣤⣤⣤⠶⣶⣻⡿⠟⠋⠁⠀⠀⠀⠀⠀⠈⠀⠀⠀⠄⠀⠀⠉⠛⠺⠯⣿⣳⣶⣶⣶⣶⡶⠶⠟⠛⢹⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡏⣆⠣⣍⠒⣡⠊⣿⠈⡓⠲⢥⣾⣴⡧⠾⠟⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⢀⠀⠀⠀⠀⠀⠀⠀⠀⡿⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡷⣌⠳⡌⡒⢄⠊⣿⠀⢂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠄⠠⠀⠀⠀⠀⠀⠀⠀⠀⣏⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⢰⠣⡜⣡⠊⠔⣹⠀⠀⠄⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠌⠠⠁⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⢣⡝⠴⡡⢎⠰⢹⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠨⣿⢀⠂⠡⠀⠀⠀⠀⠀⠄⠀⡇⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⢚⠥⡓⣌⠢⣙⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡆⢈⠡⢀⠀⠀⠄⠂⠌⠐⡇⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣯⢎⠲⡱⢨⡑⠤⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣽⣆⠐⡡⠐⣀⠂⡁⠎⣘⡇⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣎⢣⡑⢣⡘⠄⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠘⠻⣧⣀⠱⢀⠆⣑⠢⢸⡇⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⠚⡄⠃⡜⠰⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢾⡇⠈⢄⡀⠛⠳⢌⠒⠤⡃⣽⠀⠀⠀⠀⠀⢸
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⢩⠐⡡⢂⡑⢼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⠁⢂⠰⢁⠲⠨⠜⡰⢱⣿⠀⠀⠀⠀⠀⣸
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣣⠘⠄⡡⢐⣺⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠃⠀⢻⡌⠐⣀⠣⢌⡑⣊⣴⡿⠃⠀⠀⠀⠀⠀⣟
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡟⣆⠈⠔⣡⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠁⠀⠀⠀⢿⣆⢀⣢⡴⢺⡿⠋⠀⠀⠀⠀⠀⠀⢠⢟
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣗⣹⠀⢦⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠊⠀⠀⠀⠀⠀⠈⢿⣌⣳⠞⠉⠀⠀⠀⠀⠀⠀⠀⠀⢸⢺
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⠴⣩⡾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢫⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⣭
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣷⠟⡰⢀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣆⡀⠀⠀⠀⠀⠀⠀⠀⢀⡟⣲
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣹⣾⣿⣿⣿⣄⡾⢻⣯⣿⠿⣿⣷⡀⠈⢧⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⡶⠶⠖⠲⠖⢶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣶⣭⣿⣇⢻⣿⣿⣖⣲⡿⣿⣌⣿⠶⠶⠶⠖⠒⠲⠶⠲⠶⠶⢦⡄⠀⠀
// ⠀⠀⠀⡇⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⡿⣿⣍⠻⣿⣡⣴⠋⠘⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡇⠀⠀
// ⠀⠀⠀⠁⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣽⣾⣷⣿⣿⣆⢻⣷⢿⡀⠀⢻⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠀⠀
// ⠀⠀⠀⡄⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⡏⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠁⠀⠙⡏⠙⢧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⡇⢀⣸⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣾⣵⣿⠨⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣤⣀⣿⠀⠀⠻⣄⠀⠀⠀⠀⠀⠀⠀⢸⠂⠀⠀
// ⠀⠀⠀⡇⢠⣿⣿⣿⣿⣿⣿⣿⣿⢏⣿⣿⣿⣿⣿⣿⣿⠙⠿⣿⡿⠻⡏⠀⣿⣿⣿⣿⣿⣿⢟⣿⣏⣿⣿⣿⣿⣿⣭⣉⣁⠀⠀⠙⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠐⣧⣾⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⡿⡇⠀⠀⠈⠀⠀⠀⠀⢻⣹⣿⡿⠟⢡⡾⠁⠘⣿⣿⡇⢿⣿⢿⣿⡏⠉⢢⡀⠙⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⡏⠛⣿⣿⣿⣿⡿⣿⢻⣧⠀⠀⠀⠀⠀⠀⠀⠖⠛⢿⣇⣼⣯⡀⢀⣼⣿⣿⣧⣼⠟⢉⣉⣁⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⠀⠹⣦⡀⠀⠀⠀⠀⠀⠀⠀⠈⠿⣿⠟⢻⣯⣽⣿⣿⣿⠏⠀⠉⣿⠉⠑⢂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀
// ⠀⠀⢸⣷⣿⣿⣿⣿⣿⣿⣿⣖⣿⣿⣿⣿⣿⣿⣿⠀⠀⠈⠁⠀⡀⠀⠀⠀⠀⠀⠀⠀⠈⠀⢈⣽⣿⣿⣿⣿⣿⡇⠀⠻⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢐⠀⠀⠀
// ⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⡟⠻⡇⠀⠀⠀⠀⠙⠲⢤⠀⠀⠀⠀⣀⣤⣴⣿⣿⣿⣿⣿⣿⣿⣧⡝⠛⠁⠘⣷⡄⠀⠀⠀⠀⠀⠀⠀⠰⡀⠀⠀
// ⠀⢀⡿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠸⣿⣆⠀⠀⠀⠀⠀⠀⢸⡄⠀⠀
// ⠀⢸⢏⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⡍⢉⠻⣦⡀⠀⠀⠀⠀⣀⣠⣤⣴⣴⣾⣿⡿⣻⣿⣿⣿⣿⣿⣏⡿⠀⠀⠀⠀⠀⠙⢾⡂⠀⠀⠀⠀⠀⢸⡄⠀⠀
// ⠀⣾⠠⣿⣿⣿⣿⣿⣿⣿⡿⣷⢹⢻⣿⣿⣿⡅⠂⢁⠘⠻⣶⠖⠛⠛⠉⠉⢠⣿⣿⣿⣡⡾⢿⠟⠛⠻⢿⣇⣿⣧⠀⠀⠀⠀⠀⠀⠈⣷⠀⠀⠀⠀⠀⢸⠃⠀⠀
// ⠀⣿⠐⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⡟⣿⡧⠀⢀⠀⠀⡿⠲⠦⠤⢤⣴⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠙⢿⡷⠀⠀⠀⠀⠀⠀⠀⠸⡇⠀⠀⠀⠀⠈⠀⠀⠀
// ⠀⣿⣭⣿⣿⣿⣿⣿⣿⣿⣿⡘⠋⢻⣽⣿⠹⣷⠀⠀⠁⠀⠇⠀⠀⣠⡾⢿⢻⣿⣿⡟⣧⡀⠀⠀⠀⠀⠀⠀⠀⠹⣄⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢀⠀⠀⠀
// ⠀⢻⢶⣿⡘⣿⣿⠿⠛⠋⠁⠀⠀⠀⠙⢿⡄⠙⠓⠦⠀⢀⣠⡶⠛⠁⠀⠸⠿⢿⡈⠳⠄⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⣀⠀⠀⠀⠀⠀⠇⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⢨⡷⠛⠛⠉⠁⠀⠤⠤⠤⠤⠤⠤⠤⢤⣽⡇⠀⠀⠀⣿⠃⠀⠀⠀⣀⣤⣤⣦⣿⣶⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠣⡄⠀⠀⠀⡃⠀⠀⠀⠀⠀⠐⠀⠀
// ⢰⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⠇⠀⠀⠃⠀⠀⣰⣾⣿⠟⠉⠁⠀⠀⠀⠈⠛⠻⠷⢦⣀⠰⣄⠀⠀⠀⠀⠀⠈⠣⡀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⣠⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⢮⣓⢀⠀⠀⠀⠀⠀⠙⢦⡆⠀⠀⠀⠀⠀⠀⠀⠀
// ⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⢰⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢳⡔⠀⠀⠀⠀⠀⠀⣧⠀⠀⠀⠀⠀⠀⠀⢀
// ⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣄⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣆⠀⢠⠀⠀⠀⢻⡆⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⠀⠑⠄⠀⠈⢇⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢽⡆⠈⠳⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⡃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⡀⠀⣸⡇⠀⠀⠈⠳⢦⡀⠀⠀⠀⠀⠀⠀
// ⠀⢁⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠠⠀⣰⡿⠀⠀⠀⠀⠀⠀⠉⠓⠦⣤⡀⠀⠀
// ⠀⠠⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠂⠁⢀⣶⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡆⠀⠀
// ⠀⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣆⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣸⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠀
// ⠀⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡟⢷⣦⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡴⠛⢹⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀
// ⠀⢀⣿⡆⠈⠀⣠⡒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⡿⡅⠀⠈⠉⠛⠷⠶⠦⠤⠴⠶⠶⠟⠋⠁⠀⠀⠻⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⢸⡟⢿⣄⠀⠿⣧⡼⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⠟⠚⠁⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⢸⠇⠀⠙⣦⣀⠁⠂⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠁⠀⠀⠀⠀⠀⢶⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⢹⠀⠀⠀⡀⠙⠷⢦⣤⡶⢤⣄⣀⣀⣠⣤⠴⢿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠰⠀⠀⠐⠀⠀⠀⢰⣾⣿⣿⡏⠉⠉⠁⠀⠀⠀⠉⠳⢦⣀⡀⠀⠀⠀⠀⠀⠀⠛⢦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠘⠀⠀⠈⠀⠀⠁⡘⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢩⡗⠀⠀⠀⠀⠀⠀⠀⠀⠙⠶⣤⡄⡠⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠠⠀⠀⡁⢰⣿⣿⣿⡇⠀⠀⠀⢀⣀⣤⣤⣤⣤⣾⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣷⣆⠠⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣧⠴⠶⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠹⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠁⠀⠐⠈⠀⢘⣾⡿⠛⠁⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠠⠀⠈⠀⠄⠡⢀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⢀⣠⠴⠋⣈⣥⠴⠂⠀⠈⠀⠀⠀⠀⠀⠁⠀⠀⠀⢀⠀⠁⡐⠀⠀⠢⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⢀⡰⠶⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⢈⠀⠀⠄⠀⠀⠈⢷⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠾⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠠⠀⠂⠈⠄⠀⠀⠉⠳⣦⣀⠀⠂⠀⠄⡀⠀⠀⠀⠐⠠⣾⠏⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠠⠁⠐⠀⠁⡈⠄⢁⠀⡀⠀⠙⠳⢶⣤⣀⡤⣈⠄⣡⣦⡿⢿⡄⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠆⠀⠀⠀⠀⠀⠀⠀⠄⠂⠠⠁⠀⠠⠀⠂⠀⠐⡀⠄⠀⠈⢉⢡⣤⣿⠟⠁⠀⠘⣧⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠏⠀⠀⠀⠀⠀⡀⠈⠠⠀⠂⠀⠐⠈⠀⡐⠀⠁⠠⢀⠂⢉⣠⡶⠟⠉⠀⠀⠀⠀⠀⠸⣆⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠏⠀⠀⠀⠀⠀⠀⠀⠀⢁⠠⠀⠈⠠⠀⠄⠀⠠⠈⠄⠀⣤⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⠀⠀⠁⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠋⠀⠀⠀⠀⠀⠀⠂⠀⡁⠀⠄⠐⠀⠄⠀⠐⠈⠀⢀⣠⡾⠋⢷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢷⡄⠀⠀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⠁⠀⠀⠀⠀⠀⠄⠂⠀⠁⠀⠐⠀⠈⠀⢀⣀⣤⣴⠿⠛⠉⠀⠀⢈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣦⡀⠀⠀⠀⠀⠀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣾⡤⠠⠤⠤⠦⠔⠦⠒⠶⠐⠦⠴⢶⣶⣷⣿⣿⣟⣃⠀⠀⠀⠀⠂⠀⠈⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⣆⠀⠀⠀⠀
// ⢀⣀⡀⣀⣤⠄⠀⠂⠁⠀⠀⠂⠀⠀⡀⠀⠄⠀⠀⠀⣠⣴⣶⣶⣟⣋⣉⣀⣀⣀⣈⣙⣷⣤⣀⡀⠀⠠⣿⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣈⣳⣦⡀⠀
// ⠉⣁⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⠶⠛⠋⠉⠈⠁⠁⠈⠁⠉⠈⠉⡉⠉⠉⠉⠉⠻⣤⣤⠀⣸⣇⠉⠈⠁⠉⠈⠁⠉⠈⠁⠉⠈⠉⠁⠉⠈⠁⠀⠙⢋
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)
pragma solidity ^0.8.20;
/**
* @dev Standard ERC20 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.
*/
interface IERC20Errors {
/**
* @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param balance Current balance for the interacting account.
* @param needed Minimum amount required to perform a transfer.
*/
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC20InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC20InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.
* @param spender Address that may be allowed to operate on tokens without being their owner.
* @param allowance Amount of tokens a `spender` is allowed to operate with.
* @param needed Minimum amount required to perform a transfer.
*/
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC20InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `spender` to be approved. Used in approvals.
* @param spender Address that may be allowed to operate on tokens without being their owner.
*/
error ERC20InvalidSpender(address spender);
}
/**
* @dev Standard ERC721 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.
*/
interface IERC721Errors {
/**
* @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.
* Used in balance queries.
* @param owner Address of the current owner of a token.
*/
error ERC721InvalidOwner(address owner);
/**
* @dev Indicates a `tokenId` whose `owner` is the zero address.
* @param tokenId Identifier number of a token.
*/
error ERC721NonexistentToken(uint256 tokenId);
/**
* @dev Indicates an error related to the ownership over a particular token. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param tokenId Identifier number of a token.
* @param owner Address of the current owner of a token.
*/
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC721InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC721InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `operator`’s approval. Used in transfers.
* @param operator Address that may be allowed to operate on tokens without being their owner.
* @param tokenId Identifier number of a token.
*/
error ERC721InsufficientApproval(address operator, uint256 tokenId);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC721InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `operator` to be approved. Used in approvals.
* @param operator Address that may be allowed to operate on tokens without being their owner.
*/
error ERC721InvalidOperator(address operator);
}
/**
* @dev Standard ERC1155 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.
*/
interface IERC1155Errors {
/**
* @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param balance Current balance for the interacting account.
* @param needed Minimum amount required to perform a transfer.
* @param tokenId Identifier number of a token.
*/
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC1155InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC1155InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `operator`’s approval. Used in transfers.
* @param operator Address that may be allowed to operate on tokens without being their owner.
* @param owner Address of the current owner of a token.
*/
error ERC1155MissingApprovalForAll(address operator, address owner);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC1155InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `operator` to be approved. Used in approvals.
* @param operator Address that may be allowed to operate on tokens without being their owner.
*/
error ERC1155InvalidOperator(address operator);
/**
* @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.
* Used in batch transfers.
* @param idsLength Length of the array of token identifiers
* @param valuesLength Length of the array of token amounts
*/
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}
{
"compilationTarget": {
"contracts/Lucia.sol": "Lucia"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 1000000
},
"remappings": []
}
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]